﻿//@模块名称  大漠对象模块
//@版本  1.1
//@日期  2024-04-10
//@作者  逸辰Arne
//@QQ   2186616866
//@模块备注 封装大漠对象调用

//@隐藏{
#pragma once
#include "module_base.h"
//@隐藏}

//@src "module_dmcom.cpp"

//@复制文件 @当前模块路径 "dm.dll"
//@复制文件 @当前模块路径 "DmReg.dll"

//@备注 大漠对象
//@别名 大漠对象
class DmSoft_Com {
public:
    //@隐藏{
    DmSoft_Com();
    ~DmSoft_Com();
    //@隐藏}
    //@备注 可选择已免注册方式调用大漠插件,以系统注册调用方式参数留空
    //@参数 免注册Dll路径  文本类型变量 Dmreg.dll
    //@参数 插件DLL路径  文本类型变量 dm.dll
    //@别名 注册(免注册Dll路径,插件DLL路径)
    static BOOL RegDll(const wchar_t* 免注册Dll路径 = NULL, const wchar_t* 插件DLL路径 = NULL);

public:
    //@别名 初始化状态
    BOOL mIsInit;

private:
    //@隐藏{
    IDispatch* mObj;
    //@隐藏}

    // 基本设置
public:
    //@备注 大漠对象创建
    //@别名 初始化对象()
	BOOL Init();

    //@备注 设置是否开启或者关闭插件内部的图片缓存机制(默认是打开)
    //@参数 是否打开  整数类型变量  0表示不打开,1表示打开
    //@别名 基本_置图色缓存(是否打开)
    //@返回 1成功  0失败
    int EnablePicCache(int enable);

    //@备注 返回当前对象使用的dm.dll所在目录
    //@别名 基本_取插件DLL目录()
    CXText GetBasePath();

    //@备注 返回当前进程已经创建的dm对象个数.
    //@别名 基本_取对象总数()
    int GetDmCount();

    //@备注 返回当前大漠对象的ID值,这个值对于每个对象是唯一存在的。可以用来判定两个大漠对象是否一致
    //@别名 基本_取当前对象ID()
    int GetID();

    //@备注 获取插件命令的最后错误 返回值0无错误,其余自行查看大漠接口说明文档
    //@别名 基本_取错误代码()
    int GetLastError();

    //@备注 返回全局路径(可用于调试) 文本类型
    //@别名 基本_取全局路径()
    CXText GetPath();

    //@备注 调用此函数来注册,从而使用插件的高级功能.推荐使用此函数  返回值 1成功,其余自行查看大漠接口说明文档
    //@参数 注册码  文本类型变量  从大漠插件后台获取
    //@参数 版本附加信息 文本类型变量  可以在后台详细信息查看. 可以任意填写. 可填空文本
    //@别名 基本_注册插件(注册码,版本附加信息)
    int Reg(const wchar_t* reg_code, const wchar_t* ver_info);

    //@备注 调用此函数来注册,从而使用插件的高级功能. 可以根据指定的IP列表来注册. 新手不建议使用!
    //@参数 注册码  文本类型变量  从大漠插件后台获取
    //@参数 版本附加信息 文本类型变量  可以在后台详细信息查看. 可以任意填写. 可填空文本
    //@参数 IP地址列表 文本类型变量  插件注册的ip地址.可以用|来组合,依次对ip中的地址进行注册,直到成功.ip地址列表在VIP群中获取
    //@别名 基本_注册插件Ex(注册码,版本附加信息,指定IP信息)
    //@返回 1成功  其余自行查看大漠接口说明文档
    int RegEx(const wchar_t* reg_code, const wchar_t* ver_info, const wchar_t* ip);

    //@备注 调用此函数来注册,从而使用插件的高级功能. 可以根据指定的IP列表来注册.新手不建议使用! 此函数同RegEx函数的不同在于,此函数用于注册的机器码是不带mac地址的
    //@参数 注册码  文本类型变量  从大漠插件后台获取
    //@参数 版本附加信息 文本类型变量  可以在后台详细信息查看. 可以任意填写. 可填空文本
    //@参数 IP地址列表 文本类型变量  插件注册的ip地址.可以用|来组合,依次对ip中的地址进行注册,直到成功.ip地址列表在VIP群中获取
    //@别名 基本_注册插件ExNoMac(注册码,版本附加信息,指定IP信息)
    //@返回 1成功  其余自行查看大漠接口说明文档
    int RegExNoMac(const wchar_t* reg_code, const wchar_t* ver_info, const wchar_t* ip);

    //@备注 调用此函数来注册,从而使用插件的高级功能.推荐使用此函数. 新手不建议使用! 此函数同Reg函数的不同在于,此函数用于注册的机器码是不带mac地址的
    //@参数 注册码  文本类型变量  从大漠插件后台获取
    //@参数 版本附加信息 文本类型变量  可以在后台详细信息查看. 可以任意填写. 可填空文本
    //@别名 基本_注册插件NoMac(注册码,版本附加信息)
    //@返回 1成功  其余自行查看大漠接口说明文档
    int RegNoMac(const wchar_t* reg_code, const wchar_t* ver_info);

    //@备注 设定图色的获取方式,默认是显示器或者后台窗口
    //@参数 图色输入模式  文本类型变量  具体设置查看大漠接口说明文档
    //@别名 基本_设置图色输入模式(图色输入模式)
    //@返回 1成功  0失败
    int SetDisplayInput(const wchar_t* mode);

    //@备注 设置所有查找和枚举窗口函数的最长延时.内部默认超时是10秒
    //@参数 超时时间  整数类型变量  单位毫秒
    //@别名 基本_设置窗口查找超时(超时时间)
    //@返回 1成功  0失败
    int SetEnumWindowDelay(int delay);

    //@备注 设置全局路径,设置了此路径后,所有接口调用中,相关的文件都相对于此路径.比如图片,字库等
    //@参数 全局路径 文本类型变量
    //@别名 基本_设置全局路径(全局路径)
    //@返回 1成功  0失败
    int SetPath(const wchar_t* path);

    //@备注 设置是否弹出错误信息(默认是打开)
    //@参数 是否打开  整数类型变量  0表示不打开,1表示打开
    //@别名 基本_设置是否弹出错误信息(是否打开)
    //@返回 1成功  0失败
    int SetShowErrorMsg(int enable);

    //@备注 返回当前插件版本号 文本类型
    //@别名 基本_取版本号()
    CXText ver();

    //@备注 绑定指定的窗口,并指定这个窗口的屏幕颜色获取方式,鼠标仿真模式,键盘仿真模式,以及模式设定,高级用户可以参考BindWindowEx更加灵活强大
    //@参数 窗口句柄  整数类型变量  指定的窗口句柄
    //@参数 图色模式  文本类型变量  所有模式参数,请自行查看大漠接口说明
    //@参数 鼠标模式  文本类型变量
    //@参数 键盘模式  文本类型变量
    //@参数 绑定模式  整数类型变量
    //@别名 后台_绑定窗口(窗口句柄,图色模式,鼠标模式,键盘模式,绑定模式)
    //@返回 1成功  0失败
    int BindWindow(int 窗口句柄, const wchar_t* display, const wchar_t* mouse, const wchar_t* keypad, int mode);

    //@备注 绑定指定的窗口,并指定这个窗口的屏幕颜色获取方式,鼠标仿真模式,键盘仿真模式 高级用户使用
    //@参数 窗口句柄  整数类型变量  指定的窗口句柄
    //@参数 图色模式  文本类型变量  所有模式参数,请自行查看大漠接口说明
    //@参数 鼠标模式  文本类型变量
    //@参数 键盘模式  文本类型变量
    //@参数 公共属性  文本类型变量
    //@参数 绑定模式  整数类型变量
    //@别名 后台_绑定窗口Ex(窗口句柄,图色模式,鼠标模式,键盘模式,公共属性,绑定模式)
    //@返回 1成功  0失败
    int BindWindowEx(int hwnd, const wchar_t* display, const wchar_t* mouse, const wchar_t* keypad, const wchar_t* publicinfo, int mode);

    //@备注 降低已绑定目标窗口所在进程的CPU占用
    //@参数 降低值  整数类型变量  取值范围大于0  取值为0 表示关闭CPU优化. 这个值越大表示降低CPU效果越好.
    //@别名 后台_降低CPU(降低值)
    //@返回 1成功  0失败
    int DownCpu(int rate);

    //@备注 设置是否暂时关闭或者开启后台功能.默认是开启
    //@参数 绑定模式  整数类型变量  0全部关闭,-1只关闭图色,1开启,5同0但保持dx.public.active.message
    //@别名 后台_切换绑定模式(绑定模式)
    //@返回 1成功  0失败
    int EnableBind(int enable);

    //@备注 设置是否开启后台假激活功能. 默认是关闭. 一般用不到. 除非有人有特殊需求. 自行查看大漠接口说明文档
    //@参数 是否打开  整数类型变量  0表示不打开,1表示打开
    //@别名 后台_设置假激活(是否打开)
    //@返回 1成功  0失败
    int EnableFakeActive(int enable);

    //@备注 设置是否关闭绑定窗口所在进程的输入法
    //@参数 是否打开  整数类型变量  0表示不打开,1表示打开
    //@别名 后台_设置输入法状态(是否打开)
    //@返回 1成功  0失败
    int EnableIme(int enable);

    //@备注 是否在使用dx键盘时开启windows消息.默认开启
    //@参数 是否打开  整数类型变量  0表示不打开,1表示打开
    //@别名 后台_设置键盘消息(是否打开)
    //@返回 1成功  0失败
    int EnableKeypadMsg(int enable);

    //@备注 键盘消息发送补丁. 默认是关闭
    //@参数 是否打开  整数类型变量  0表示不打开,1表示打开
    //@别名 后台_设置键盘发送补丁(是否打开)
    //@返回 1成功  0失败
    int EnableKeypadPatch(int enable);

    //@备注 键盘消息采用同步发送模式.默认异步
    //@参数 同步模式  整数类型变量  0异步模式,1同步模式
    //@参数 超时时间  整数类型变量  单位是毫秒,表示同步等待的最大时间.
    //@别名 后台_设置键盘消息同步(同步模式,超时时间)
    //@返回 1成功  0失败
    int EnableKeypadSync(int enable, int time_out);

    //@备注 是否在使用dx鼠标时开启windows消息.默认开启
    //@参数 是否打开  整数类型变量  0表示不打开,1表示打开
    //@别名 后台_设置鼠标消息(是否打开)
    //@返回 1成功  0失败
    int EnableMouseMsg(int enable);

    //@备注 鼠标消息采用同步发送模式.默认异步
    //@参数 同步模式  整数类型变量  0异步模式,1同步模式
    //@参数 超时时间  整数类型变量  单位是毫秒,表示同步等待的最大时间.
    //@别名 后台_设置鼠标消息同步(同步模式,超时时间)
    //@返回 1成功  0失败
    int EnableMouseSync(int enable, int time_out);

    //@备注 键盘动作模拟真实操作,点击延时随机
    //@参数 是否打开  整数类型变量  0表示不打开,1表示打开
    //@别名 后台_设置键盘真实模拟(是否打开)
    //@返回 1成功  0失败
    int EnableRealKeypad(int enable);

    //@备注 鼠标动作模拟真实操作,带移动轨迹,以及点击延时随机
    //@参数 模拟模式  整数类型变量  0关闭模拟,1开启模拟(直线模拟),2开启模式(随机曲线,更接近真实)
    //@参数 移动间隔  整数类型变量  单位是毫秒. 表示在模拟鼠标移动轨迹时,每移动一次的时间间隔.这个值越大,鼠标移动越慢.
    //@参数 移动距离  整数类型变量  表示在模拟鼠标移动轨迹时,每移动一次的距离. 这个值越大,鼠标移动越快速.
    //@别名 后台_设置鼠标真实模拟(模拟模式,移动间隔,移动距离)
    //@返回 1成功  0失败
    int EnableRealMouse(int enable, int mousedelay, int mousestep);

    //@备注 设置是否开启高速dx键鼠模式,默认是关闭
    //@参数 是否打开  整数类型变量  0表示不打开,1表示打开
    //@别名 后台_设置高速键鼠DX(是否打开)
    //@返回 1成功  0失败
    int EnableSpeedDx(int enable);

    //@备注 强制解除绑定窗口,并释放系统资源
    //@参数 窗口句柄  整数类型变量 指定窗口句柄
    //@别名 后台_强制解除窗口绑定(窗口句柄)
    //@返回 1成功  0失败
    int ForceUnBindWindow(int hwnd);

    //@备注 获取当前对象已经绑定的窗口句柄
    //@别名 后台_取绑定窗口句柄()
    //@返回 0未绑定
    int GetBindWindow();

    //@备注 判定指定窗口是否已经被后台绑定. (前台无法判定)  返回值 0没绑定或者窗口不存在, 1已经绑定
    //@参数 窗口句柄  整数类型变量 指定窗口句柄
    //@别名 后台_窗口是否绑定(窗口句柄)
    //@返回 1绑定  0未绑定
    int IsBind(int hwnd);

    //@备注 锁定指定窗口的图色数据(不刷新)
    //@参数 是否锁定  整数类型变量  0关闭锁定, 1开启锁定
    //@别名 后台_锁定图色(是否锁定)
    //@返回 1成功  0失败
    int LockDisplay(int lock);

    //@备注 禁止外部输入到指定窗口
    //@参数 锁定模式  整数类型变量  1开启锁定(键盘鼠标都锁定), 2只锁定鼠标, 3只锁定键盘, 4特殊锁定同1,5特殊锁定同3  详见大漠接口说明
    //@别名 后台_锁定输入(锁定模式)
    //@返回 1成功  0失败
    int LockInput(int lock);

    //@备注 设置前台鼠标在屏幕上的活动范围
    //@参数 x1  整数类型变量  区域的左上X坐标(屏幕坐标)
    //@参数 y1  整数类型变量  区域的左上Y坐标(屏幕坐标)
    //@参数 x2  整数类型变量  区域的右下X坐标(屏幕坐标)
    //@参数 y2  整数类型变量  区域的右下Y坐标(屏幕坐标)
    //@别名 后台_锁定鼠标活动范围(x1,y1,x2,y2)
    //@返回 1成功  0失败
    int LockMouseRect(int x1, int y1, int x2, int y2);

    //@备注 设置开启或者关闭系统的Aero效果(仅对WIN7及以上系统有效)
    //@参数 是否打开  整数类型变量  0表示不打开,1表示打开
    //@别名 后台_设置Aero效果(是否打开)
    //@返回 1成功  0失败
    int SetAero(int enable);

    //@备注 设置dx截图最长等待时间。内部默认是3000毫秒.一般用不到调整这个
    //@参数 截图时长  整数类型变量  等待时间,单位是毫秒.注意这里不能设置的过小,否则可能会导致截图失败,从而导致图色函数和文字识别失败
    //@别名 后台_设置DX截图时长(截图时长)
    //@返回 1成功  0失败
    int SetDisplayDelay(int time);

    //@备注 在不解绑的情况下, 切换绑定窗口.(必须是同进程窗口)
    //@参数 窗口句柄  整数类型变量  需要切换过去的窗口句柄
    //@别名 后台_切换绑定窗口(窗口句柄)
    //@返回 1成功  0失败
    int SwitchBindWindow(int hwnd);

    //@备注 解除绑定窗口,并释放系统资源.一般在OnScriptExit调用
    //@别名 后台_解除窗口绑定()
    int UnBindWindow();

    //@备注 获取鼠标位置
    //@参数 x  整数类型变量  传参  返回x坐标
    //@参数 y  整数类型变量  传参  返回y坐标
    //@别名 鼠标_取位置(x,y)
    //@返回 1成功  0失败
    int GetCursorPos(int& x, int& y);

    //@备注 获取鼠标特征码. 当BindWindow或者BindWindowEx中的mouse参数含有dx.mouse.cursor时,获取到的是后台鼠标特征,否则是前台鼠标特征.
    //@别名 鼠标_取特征码()
    CXText GetCursorShape();

    //@备注 获取鼠标特征码. 当BindWindow或者BindWindowEx中的mouse参数含有dx.mouse.cursor时,获取到的是后台鼠标特征,否则是前台鼠标特征.
    //@参数 模式  整数类型变量  获取鼠标特征码的方式. 和工具中的方式1 方式2对应. 方式1此参数值为0. 方式2此参数值为1.
    //@别名 鼠标_取特征码(模式)
    CXText GetCursorShapeEx(int type);

    //@备注 获取鼠标热点位置.(参考工具中抓取鼠标后,那个闪动的点就是热点坐标, 不是鼠标坐标)  返回形如"x,y"的字符串
    //@别名 鼠标_取热点位置()
    CXText GetCursorShapeEx();

    //@备注 把鼠标移动到目的点(x, y)
    //@参数 x  整数类型变量
    //@参数 y  整数类型变量
    //@别名 鼠标_移动(x,y)
    //@返回 1成功  0失败
    int MoveTo(int x, int y);

    //@备注 鼠标相对于上次的位置移动rx, ry
    //@参数 rx  整数类型变量  在当前位置向左或右相对移动坐标
    //@参数 ry  整数类型变量  在当前位置向上或下相对移动坐标
    //@别名 鼠标_相对移动(rx,ry)
    //@返回 1成功  0失败
    int MoveR(int rx, int ry);

    //@备注 把鼠标移动到目的范围内的任意随机一点  返回移动到的目标点. 格式为x,y  比如MoveToEx 100,100,10,10,返回值可能是101,102
    //@参数 x坐标  整数类型变量
    //@参数 y坐标  整数类型变量
    //@参数 宽度  整数类型变量  从x计算起
    //@参数 高度  整数类型变量  从y计算起
    //@别名 鼠标_移动随机范围(x坐标,y坐标,宽度,高度)
    //@返回 坐标值文本例如  101,102
    CXText MoveToEx(int x, int y, int w, int h);

    //@备注 设置鼠标单击或者双击时,鼠标按下和弹起的时间间隔,高级用户使用,某些窗口可能需要调整这个参数才可以正常点击
    //@参数 鼠标类型  文本类型  "normal"---内部默认延时为30ms   "windows"---内部默认延时为10ms  "dx"---内部默认延时为40ms
    //@参数 指定延时  整数类型变量  单位毫秒
    //@别名 鼠标_设置点击延迟(鼠标类型,指定延时)
    //@返回 1成功  0失败
    int SetMouseDelay(const wchar_t* type, int delay);

    //@备注 按住鼠标左键
    //@别名 鼠标_左键按住()
    //@返回 1成功  0失败
    int LeftDown();

    //@备注 弹起鼠标左键
    //@别名 鼠标_左键弹起()
    //@返回 1成功  0失败
    int LeftUp();

    //@备注 点击鼠标左键
    //@别名 鼠标_左键点击()
    //@返回 1成功  0失败
    int LeftClick();

    //@备注 双击鼠标左键
    //@别名 鼠标_左键双击()
    //@返回 1成功  0失败
    int LeftDoubleClick();

    //@备注 按住鼠标右键
    //@别名 鼠标_中键按住()
    //@返回 1成功  0失败
    int MiddleDown();

    //@备注 弹起鼠标右键
    //@别名 鼠标_中键弹起()
    //@返回 1成功  0失败
    int MiddleUp();

    //@备注 点击鼠标右键
    //@别名 鼠标_中键点击()
    //@返回 1成功  0失败
    int MiddleClick();

    //@备注 按住鼠标右键
    //@别名 鼠标_右键按住()
    //@返回 1成功  0失败
    int RightDown();

    //@备注 弹起鼠标右键
    //@别名 鼠标_右键弹起()
    //@返回 1成功  0失败
    int RightUp();

    //@备注 点击鼠标右键
    //@别名 鼠标_右键点击()
    //@返回 1成功  0失败
    int RightClick();

    //@备注 鼠标滚轮向下滚
    //@别名 鼠标_滚轮下滚()
    //@返回 1成功  0失败
    int WheelDown();

    //@备注 鼠标滚轮向上滚
    //@别名 鼠标_滚轮上滚()
    //@返回 1成功  0失败
    int WheelUp();

    //@备注 获取指定的按键状态.(前台信息,不是后台) 返回值 0弹起 1按下
    //@参数 键代码  整数类型变量  虚拟按键码
    //@别名 键盘_取键状态(键代码)
    //@返回 1按下  0弹起
    int GetKeyState(int vk_code);

    //@备注 按住指定的虚拟键码
    //@参数 键代码  整数类型变量  虚拟按键码
    //@别名 键盘_按住(键代码)
    //@返回 1成功  0失败
    int KeyDown(int vk_code);

    //@备注 弹起指定的虚拟键码
    //@参数 键代码  整数类型变量  虚拟按键码
    //@别名 键盘_弹起(键代码)
    //@返回 1成功  0失败
    int KeyUp(int vk_code);

    //@备注 按住描述按键的虚拟键码
    //@参数 按键描述  文本类型变量  文本描述键码. 大小写无所谓,例如 'F1' 'enter'
    //@别名 键盘_按住描述键(按键描述)
    //@返回 1成功  0失败
    int KeyDownChar(const wchar_t* key_str);

    //@备注 弹起描述按键的虚拟键码
    //@参数 按键描述  文本类型变量  文本描述键码. 大小写无所谓,例如 'F1' 'enter'
    //@别名 键盘_弹起描述键(键代码)
    //@返回 1成功  0失败
    int KeyUpChar(const wchar_t* key_str);

    //@备注 点击指定的虚拟键码
    //@参数 键代码  整数类型变量  虚拟按键码
    //@别名 键盘_点击(键代码)
    //@返回 1成功  0失败
    int KeyPress(int vk_code);

    //@备注 点击描述按键的虚拟键码
    //@参数 按键描述  文本类型变量  文本描述键码. 大小写无所谓,例如 'F1' 'enter'
    //@别名 键盘_点击描述键(按键描述)
    //@返回 1成功  0失败
    int KeyPressChar(const wchar_t* key_str);

    //@备注 根据指定的字符串序列,依次按顺序点击输入其中的字符
    //@参数 字符串  文本类型变量  需要按下的字符串序列,比如"1234","abcd","7389,1462"等.
    //@参数 延时  每按下一个按键,需要延时多久. 单位毫秒.这个值越大,按的速度越慢。
    //@别名 键盘_输入(字符串,延时)
    //@返回 1成功  0失败
    int KeyPressStr(const wchar_t* key_str, int delay);

    //@备注 设置按键时,键盘按下和弹起的时间间隔,高级用户使用,某些窗口可能需要调整这个参数才可以正常按键
    //@参数 键盘类型  文本类型  "normal"---内部默认延时为30ms   "windows"---内部默认延时为10ms  "dx"---内部默认延时为50ms
    //@参数 指定延时  整数类型变量  单位毫秒
    //@别名 键盘_设置点击延迟(键盘类型,指定延时)
    //@返回 1成功  0失败
    int SetKeypadDelay(const wchar_t* type, int delay);

    //@备注 设置前台键鼠的模拟方式  返回值 1成功, 0插件没注册  -2驱动释放失败  -3驱动加载失败
    //@参数 模拟方式  整数类型变量  0正常模式(默认模式)  1超级模拟(隐藏驱动)  2硬件模拟(隐藏驱动)  3超级模拟(不隐藏驱动)  4硬件模拟(不隐藏驱动)  5硬件模拟2(PS2键鼠专用) 6同模式5(不隐藏驱动)
    //@别名 键鼠_设置模拟方式(模拟方式)
    //@返回 1成功  0插件没注册  -2驱动释放失败  -3驱动加载失败
    int SetSimMode(int mode);

    //@备注 等待指定的按键按下 (前台,不是后台)  返回值  0超时 1指定按键按下 (指定键代码为0时返回按下的键代码)
    //@参数 键代码  整数类型变量  虚拟按键码,当此值为0,表示等待任意按键  鼠标左键是1,鼠标右键时2,鼠标中键是4
    //@参数 超时时间  整数类型变量  最长等待时间,单位毫秒  如果是0,表示一直等待
    //@别名 键鼠_等待按键(键代码,超时时间)
    //@返回 1指定按键按下(指定键代码为0时返回按下的键代码)  0超时
    int WaitKey(int vk_code, int time_out);

    //@备注 根据指定进程名,枚举系统中符合条件的进程PID,并且按照进程打开顺序排序  返回所有匹配的进程PID,并按打开顺序排序,格式"pid1,pid2,pid3"
    //@参数 进程名  文本类型变量  进程名,比如 "qq.exe"
    //@别名 进程_枚举(进程名)
    //@返回 所有匹配的进程PID,并按打开顺序排序,格式"pid1,pid2,pid3"
    CXText EnumProcess(const wchar_t* name);

    //@备注 根据指定的pid获取进程详细信息
    //@参数 进程ID  整数类型变量  指定进程ID
    //@别名 进程_取信息(进程ID)
    //@返回 信息格式 "进程名|进程路径|cpu|内存"
    CXText GetProcessInfo(int pid);

    //@备注 把窗口坐标转换为屏幕坐标
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 坐标x  整数类型变量  传参  成功后返回屏屏坐标x
    //@参数 坐标y  整数类型变量  传参  成功后返回屏屏坐标y
    //@别名 窗口_取屏幕坐标(窗口句柄,坐标x,坐标y)
    //@返回 1成功  0失败
    int ClientToScreen(int hwnd, int& x, int& y);

    //@备注 把屏幕坐标转换为窗口坐标
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 坐标x  整数类型变量  传参  成功后返回窗口坐标x
    //@参数 坐标y  整数类型变量  传参  成功后返回窗口坐标y
    //@别名 窗口_取窗口坐标(窗口句柄,坐标x,坐标y)
    //@返回 1成功  0失败
    int ScreenToClient(int hwnd, int& x, int& y);

    //@备注 根据指定条件,枚举系统中符合条件的窗口
    //@参数 父窗口  整数类型变量  获得的窗口句柄是该窗口的子窗口的窗口句柄,取0时为获得桌面句柄
    //@参数 窗口标题  文本类型变量  此参数是模糊匹配,需过滤条件设置才生效
    //@参数 窗口类名  文本类型变量  此参数是模糊匹配,需过滤条件设置才生效
    //@参数 过滤条件  整数类型变量  1开启匹配标题  2开启匹配类名  4只匹配一级子窗口  8匹配顶层窗口  16匹配可见的窗口  32匹配出的窗口按打开顺序排列
    //@别名 窗口_枚举(父窗口,窗口标题,窗口类名,过滤条件)
    //@返回 所有匹配的窗口句柄字符串,格式 "hwnd1,hwnd2,hwnd3"
    CXText EnumWindow(int parent, const wchar_t* title, const wchar_t* class_name, int filter);

    //@备注 根据指定进程以及其它条件,枚举系统中符合条件的窗口
    //@参数 进程名称  文本类型变量  进程映像名.比如(svchost.exe). 此参数是精确匹配,但不区分大小写.
    //@参数 窗口标题  文本类型变量  此参数是模糊匹配,需过滤条件设置才生效
    //@参数 窗口类名  文本类型变量  此参数是模糊匹配,需过滤条件设置才生效
    //@参数 过滤条件  整数类型变量  1开启匹配标题  2开启匹配类名  4只匹配首个进程的窗口  8匹配顶层窗口  16匹配可见的窗口  32匹配出的窗口按打开顺序排列
    //@别名 窗口_枚举BY进程名(进程名称,窗口标题,窗口类名,过滤条件)
    //@返回 返回所有匹配的窗口句柄文本,格式 "123,456,789"
    CXText EnumWindowByProcess(const wchar_t* process_name, const wchar_t* title, const wchar_t* class_name, int filter);

    //@备注 根据指定进程以及其它条件,枚举系统中符合条件的窗口
    //@参数 进程ID  整数类型变量  指定进程ID
    //@参数 窗口标题  文本类型变量  此参数是模糊匹配,需过滤条件设置才生效
    //@参数 窗口类名  文本类型变量  此参数是模糊匹配,需过滤条件设置才生效
    //@参数 过滤条件  整数类型变量  1开启匹配标题  2开启匹配类名  8匹配顶层窗口  16匹配可见的窗口  32匹配出的窗口按打开顺序排列
    //@别名 窗口_枚举BY进程ID(进程名称,窗口标题,窗口类名,过滤条件)
    //@返回 返回所有匹配的窗口句柄字符串,格式 "hwnd1,hwnd2,hwnd3"
    CXText EnumWindowByProcessId(int pid, const wchar_t* title, const wchar_t* class_name, int filter);

    //@备注 根据两组设定条件来查找指定窗口
    //@参数 条件一  文本类型变量  符合下个参数条件类型的条件信息
    //@参数 条件类型  整数类型变量  共9种条件类型设定,具体参数自行查看大漠接口说明文档
    //@参数 匹配模式  整数类型变量  0精确判断  1模糊判断
    //@参数 条件二  文本类型变量  符合符合下个参数条件类型的条件信息
    //@参数 条件类型  整数类型变量  共9种条件类型设定,具体参数自行查看大漠接口说明文档
    //@参数 匹配模式  整数类型变量  0精确判断  1模糊判断
    //@别名 窗口_枚举BY条件(条件一,条件类型,匹配模式,条件二,条件类型,匹配模式)
    //@返回 返回所有匹配的窗口句柄字符串,格式 "hwnd1,hwnd2,hwnd3"
    int FindWindowSuper(const wchar_t* spec1, int flag1, int type1, const wchar_t* spec2, int flag2, int type2);

    //@备注 根据指定的进程名字，来查找可见窗口.
    //@参数 进程名    文本类型变量  比如(notepad.exe).这里是精确匹配,但不区分大小写.
    //@参数 窗口类名  文本类型变量  如果为空，则匹配所有. 这里的匹配是模糊匹配.
    //@参数 窗口标题  文本类型变量  如果为空，则匹配所有.这里的匹配是模糊匹配.
    //@别名 窗口_进程查找窗口(进程名,窗口类名,窗口标题)
    //@返回 整形数表示的窗口句柄，没找到返回0
    int FindWindowByProcess(const wchar_t* proc_name, const wchar_t* wnd_class, const wchar_t* title);

    //@备注 根据指定的进程Id，来查找可见窗口.
    //@参数 进程id   整数类型变量  进程id.
    //@参数 窗口类名  文本类型变量  如果为空，则匹配所有. 这里的匹配是模糊匹配.
    //@参数 窗口标题  文本类型变量  如果为空，则匹配所有.这里的匹配是模糊匹配.
    //@别名 窗口_进程ID查找窗口(进程id,窗口类名,窗口标题)
    //@返回 整形数表示的窗口句柄，没找到返回0
    int FindWindowByProcessId(int pid, const wchar_t* wnd_class, const wchar_t* title);

    //@备注 获取窗口客户区域在屏幕上的位置
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 x1  整数类型变量  传参  返回区域的左上X坐标(屏幕坐标)
    //@参数 y1  整数类型变量  传参  返回区域的左上Y坐标(屏幕坐标)
    //@参数 x2  整数类型变量  传参  返回区域的右下X坐标(屏幕坐标)
    //@参数 y2  整数类型变量  传参  返回区域的右下Y坐标(屏幕坐标)
    //@别名 窗口_取客户区域坐标(窗口句柄,x1,y1,x2,y2)
    //@返回 1成功  0失败
    int GetClientRect(int hwnd, int& x1, int& y1, int& x2, int& y2);

    //@备注 获取窗口客户区域的宽度和高度
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 宽度  整数类型变量  传参  返回区域的宽度
    //@参数 高度  整数类型变量  传参  返回区域的高度
    //@别名 窗口_取客户区域大小(窗口句柄,宽度,高度)
    //@返回 1成功  0失败
    int GetClientSize(int hwnd, int& width, int& height);

    //@备注 设置窗口客户区域的宽度和高度
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 宽度  整数类型变量  指定客户区域宽度
    //@参数 高度  整数类型变量  指定客户区域高度
    //@别名 窗口_置客户区域大小(窗口句柄,宽度,高度)
    //@返回 1成功  0失败
    int SetClientSize(int hwnd, int width, int height);

    //@备注 获取窗口在屏幕上的位置
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 x1  整数类型变量  传参  返回左上X坐标(屏幕坐标)
    //@参数 y1  整数类型变量  传参  返回左上Y坐标(屏幕坐标)
    //@参数 x2  整数类型变量  传参  返回右下X坐标(屏幕坐标)
    //@参数 y2  整数类型变量  传参  返回右下Y坐标(屏幕坐标)
    //@别名 窗口_取坐标(窗口句柄,x1,y1,x2,y2)
    //@返回 1成功  0失败
    int GetWindowRect(int hwnd, int& x1, int& y1, int& x2, int& y2);

    //@备注 设置窗口的宽度和高度
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 宽度  整数类型变量  指定窗口宽度
    //@参数 高度  整数类型变量  指定窗口高度
    //@别名 窗口_置大小(窗口句柄,宽度,高度)
    //@返回 1成功  0失败
    int SetWindowSize(int hwnd, int width, int height);

    //@备注 获取顶层活动窗口中具有输入焦点的窗口句柄
    //@别名 窗口_取焦点窗口()
    int GetForegroundFocus();

    //@备注 获取顶层活动窗口
    //@别名 窗口_取顶层活动窗口()
    int GetForegroundWindow();

    //@备注 获取鼠标指向的可见窗口句柄
    //@别名 窗口_取鼠标指向窗口()
    int GetMousePointWindow();

    //@备注 获取给定坐标的可见窗口句柄
    //@参数 x  整数类型变量  X坐标(屏幕坐标)
    //@参数 y  整数类型变量  Y坐标(屏幕坐标)
    //@别名 窗口_取指定坐标窗口(x,y)
    int GetPointWindow(int x, int y);

    //@备注 获取特殊窗口
    //@参数 类型  整数类型变量  0获取桌面窗口  1获取任务栏窗口
    //@别名 窗口_取特殊窗口(类型)
    int GetSpecialWindow(int flag);

    //@备注 获取给定窗口相关的窗口句柄
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 关联类型  整数类型变量  0获取父窗口  1获取第一个儿子窗口  2获取First窗口  3获取Last窗口  4获取下一个窗口  5获取上一个窗口  6获取拥有者窗口  7获取顶层窗口
    //@别名 窗口_取关联窗口(窗口句柄,关联类型)
    int GetWindow(int hwnd, int flag);

    //@备注 获取窗口的类名
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@别名 窗口_取类名(窗口句柄)
    CXText GetWindowClass(int hwnd);

    //@备注 获取窗口的标题
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@别名 窗口_取标题(窗口句柄)
    CXText GetWindowTitle(int hwnd);

    //@备注 设置窗口的标题
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 窗口标题  文本型变量
    //@别名 窗口_置标题(窗口句柄,窗口标题)
    //@返回 1成功  0失败
    int SetWindowText_(int hwnd, const wchar_t* title);

    //@备注 设置窗口的透明度
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 透明度  整数类型变量  透明度取值(0-255) 越小透明度越大 0为完全透明(不可见) 255为完全显示(不透明)
    //@别名 窗口_置透明度(窗口句柄,透明度)
    //@返回 1成功  0失败
    int SetWindowTransparent(int hwnd, int title);

    //@备注 设置窗口的状态
    //@参数 窗口句柄  整数类型变量  0关闭  1激活  2最小化,不激活  3最小化,释放内存,并激活  4最大化,并激活  5恢复窗口,不激活  6隐藏窗口  7显示窗口
    //@参数 设置选项  整数类型变量  8置顶窗口  9取消置顶  10禁止窗口  11取消禁止  12恢复窗口,并激活  13强制窗口所在进程  14闪烁窗口  15置输入焦点
    //@别名 窗口_设置状态(窗口句柄,设置选项)
    //@返回 1成功  0失败
    int SetWindowState(int hwnd, int flag);

    //@备注 获取指定窗口的一些属性
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 属性条件  整数类型变量  0窗口是否存在  1窗口是否激活  2判断窗口是否可见  3窗口是否最小化  4窗口是否最大化  5窗口是否置顶  6窗口是否无响应  7窗口是否可用(灰色为不可用)  8窗口是否无响应2 如果6无效可以尝试这个  9窗口所属进程是否64位
    //@别名 窗口_属性判断(窗口句柄,属性条件)
    //@返回 1属性存在  0属性不存在
    int GetWindowState(int hwnd, int flag);

    //@备注 获取指定窗口所在的进程ID
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@别名 窗口_取进程ID(窗口句柄)
    int GetWindowProcessId(int hwnd);

    //@备注 获取指定窗口所在的进程的exe文件全路径
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@别名 窗口_取进程路径(窗口句柄)
    CXText GetWindowProcessPath(int hwnd);

    //@备注 移动指定窗口到指定位置
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 x  整数类型变量  X坐标(屏幕坐标)
    //@参数 y  整数类型变量  Y坐标(屏幕坐标)
    //@别名 窗口_移动(窗口句柄,x,y)
    //@返回 1成功  0失败
    int MoveWindow(int hwnd, int x, int y);

    //@备注 向指定窗口发送文本数据
    //@参数 窗口句柄  整数类型变量  指定的窗口句柄. 如果为0,则对当前激活的窗口发送.
    //@参数 文本数据  文本类型变量
    //@别名 窗口_发送文本(窗口句柄,文本数据)
    //@返回 1成功  0失败
    int SendString(int hwnd, const wchar_t* str);

    //@备注 向指定窗口发送文本数据  老接口,另一个不能用可以试试
    //@参数 窗口句柄  整数类型变量  指定的窗口句柄. 如果为0,则对当前激活的窗口发送.
    //@参数 文本数据  文本类型变量
    //@别名 窗口_发送文本2(窗口句柄,文本数据)
    //@返回 1成功  0失败
    int SendString2(int hwnd, const wchar_t* str);

    //@备注 向绑定的窗口发送文本数据,绑定时公共属性必须有dx.public.input.ime属性
    //@参数 文本数据  文本类型变量
    //@别名 窗口_发送文本绑定(文本数据)
    //@返回 1成功  0失败
    int SendStringIme(const wchar_t* str);

    //@备注 利用真实的输入法，对指定的窗口输入文字  高级接口,具体信息请查看大漠接口文档
    //@参数 窗口句柄  整数类型变量
    //@参数 文本数据  文本类型变量  输入文本前必须用模式200安装了输入法
    //@参数 模式  整数类型变量  0输入文本  1备用输入模式  2备用输入模式  200安装输入法  300卸载输入
    //@别名 窗口_输入文本(窗口句柄,文本数据,模式)
    //@返回 1成功  0失败
    int SendStringIme2(int hwnd, const wchar_t* str, int mode);

    //@备注 向指定窗口发送粘贴命令  把剪贴板的内容发送到目标窗口
    //@参数 窗口句柄  整数类型变量  指定的窗口句柄. 如果为0,则对当前激活的窗口发送.
    //@别名 窗口_发送粘贴命令(窗口句柄)
    //@返回 1成功  0失败
    int SendPaste(int hwnd);

    //@备注 对指定的内存图片数据地址和长度,与原图片信息拼接成内存找图专用参数
    //@参数 原图片信息  文本类型变量  已有的图片信息  可为空文本
    //@参数 数据地址  整数类型变量  图片内存地址
    //@参数 数据长度  整数类型变量  图片数据长度
    //@别名 图色_内存图片信息生成(图片信息,数据地址,数据长度)
    //@返回 图片信息描述  用于 图色_内存找图() 系类函数
    CXText AppendPicAddr(const wchar_t* pic_info, int addr, int size);

    //@备注 抓取指定区域(x1,y1,x2,y2)的图像,保存为file(24位位图)
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 文件名  文本类型变量  保存的文件名,保存的地方一般为SetPath中设置的目录,也可为全路径
    //@别名 图色_截图BMP(x1,y1,x2,y2,文件名)
    //@返回 1成功  0失败
    int Capture(int x1, int y1, int x2, int y2, const wchar_t* file);

    //@备注 抓取指定区域(x1,y1,x2,y2)的动画,保存为gif格式
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 文件名  文本类型变量  保存的文件名,保存的地方一般为SetPath中设置的目录,也可为全路径
    //@参数 动画间隔  整数类型变量  动画间隔，单位毫秒。如果为0，表示只截取静态图片
    //@参数 总时长  整数类型变量  总共截取多久的动画，单位毫秒
    //@别名 图色_截图GIF(x1,y1,x2,y2,文件名,动画间隔,总时长)
    //@返回 1成功  0失败
    int CaptureGif(int x1, int y1, int x2, int y2, const wchar_t* file, int delay, int time);

    //@备注 抓取指定区域(x1,y1,x2,y2)的图像,保存为file(JPG压缩格式)
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 文件名  文本类型变量  保存的文件名,保存的地方一般为SetPath中设置的目录,也可为全路径
    //@参数 压缩比率 整数类型变量  jpg压缩比率(1-100) 越大图片质量越好
    //@别名 图色_截图JPG(x1,y1,x2,y2,文件名,压缩比率)
    //@返回 1成功  0失败
    int CaptureJpg(int x1, int y1, int x2, int y2, const wchar_t* file, int quality);

    //@备注 抓取指定区域(x1,y1,x2,y2)的图像,保存为file(PNG压缩格式)
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 文件名  文本类型变量  保存的文件名,保存的地方一般为SetPath中设置的目录,也可为全路径
    //@别名 图色_截图PNG(x1,y1,x2,y2,文件名)
    //@返回 1成功  0失败
    int CapturePng(int x1, int y1, int x2, int y2, const wchar_t* file);

    //@备注 抓取上次操作的图色区域,保存为file(24位位图)
    //@参数 文件名  文本类型变量  保存的文件名,保存的地方一般为SetPath中设置的目录,也可为全路径
    //@别名 图色_另存BMP(文件名)
    //@返回 1成功  0失败
    int CapturePre(const wchar_t* file);

    //@备注 比较指定坐标点(x,y)的颜色  返回值  0颜色匹配  1颜色不匹配
    //@参数 x  整数类型变量  X坐标
    //@参数 y  整数类型变量  Y坐标
    //@参数 颜色字符串  文本类型变量  颜色字符串,可以支持偏色,多色,例如 "ffffff-202020|000000-000000"  只支持RGB颜色
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@别名 图色_比较颜色(x,y,颜色字符串,相似度)
    //@返回 0匹配  1不匹配
    int CmpColor(int x, int y, const wchar_t* color, double sim);

    //@备注 开启图色调试模式,此模式会稍许降低图色和文字识别的速度.默认不开启.
    //@参数 是否打开  整数类型变量  0为关闭  1为开启
    //@别名 图色_设置图色调试(是否打开)
    //@返回 1成功  0失败
    int EnableDisplayDebug(int enable_debug);

    //@备注 允许调用 图色_取色,图色_取色BGR,图色_取色HSV,图色_比较颜色 时,以截图的方式来获取颜色。
    //@参数 是否打开  整数类型变量  0为关闭  1为开启
    //@别名 图色_设置截图取色(是否打开)
    //@返回 1成功  0失败
    int EnableGetColorByCapture(int enable);

    //@备注 查找指定区域内的颜色,颜色格式"RRGGBB-DRDGDB"
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色字符串  文本类型变量  颜色字符串,可以支持偏色,多色,例如 "ffffff-202020|000000-000000"  只支持RGB颜色
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 查找方向  整数类型变量  0左右上下  1左右下上  2右左上下  3右左下上  4中心向外  5上下左右  6上下右左  7下上左右  9下上右左
    //@参数 intX  整数类型变量  传参  返回找到的x坐标
    //@参数 intY  整数类型变量  传参  返回找到的y坐标
    //@别名 图色_找色(x1,y1,x2,y2,颜色字符串,相似度,查找方向,intX,intY)
    //@返回 1找到  0未找到
    int FindColor(int x1, int y1, int x2, int y2, const wchar_t* color, double sim, int dir, int& intX, int& intY);

    //@备注 查找指定区域内的颜色块,颜色格式"RRGGBB-DRDGDB"
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色字符串  文本类型变量  颜色字符串,可以支持偏色,多色,例如 "ffffff-202020|000000-000000"  只支持RGB颜色
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 符合数量  整数类型变量  在颜色块宽高中，符合颜色的最小数量
    //@参数 宽度  整数类型变量  颜色块的宽度
    //@参数 高度  整数类型变量  颜色块的高度
    //@参数 intX  整数类型变量  传参  返回找到的x坐标
    //@参数 intY  整数类型变量  传参  返回找到的y坐标
    //@别名 图色_找色块(x1,y1,x2,y2,颜色字符串,相似度,符合数量,宽度,高度,intX,intY)
    //@返回 1找到  0未找到
    int FindColorBlock(int x1, int y1, int x2, int y2, const wchar_t* color, double sim, int count, int width, int height, int& intX, int& intY);

    //@备注 查找指定区域内的所有颜色块,颜色格式"RRGGBB-DRDGDB"
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色字符串  文本类型变量  颜色字符串,可以支持偏色,多色,例如 "ffffff-202020|000000-000000"  只支持RGB颜色
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 符合数量  整数类型变量  在颜色块宽高中，符合颜色的最小数量
    //@参数 宽度  整数类型变量  颜色块的宽度
    //@参数 高度  整数类型变量  颜色块的高度
    //@别名 图色_找色块Ex(x1,y1,x2,y2,颜色字符串,相似度,符合数量,宽度,高度)
    //@返回 返回所有颜色块信息的坐标信息描述, 可通过 坐标_取数量() 系列函数接口来解析
    CXText FindColorBlockEx(int x1, int y1, int x2, int y2, const wchar_t* color, double sim, int count, int width, int height);

    //@备注 查找指定区域内的所有颜色,颜色格式"RRGGBB-DRDGDB"
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色字符串  文本类型变量  颜色字符串,可以支持偏色,多色,例如 "ffffff-202020|000000-000000"  只支持RGB颜色
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 查找方向  整数类型变量  0左右上下  1左右下上  2右左上下  3右左下上  4中心向外  5上下左右  6上下右左  7下上左右  9下上右左
    //@别名 图色_找色Ex(x1,y1,x2,y2,颜色字符串,相似度,查找方向)
    //@返回 返回所有颜色信息的坐标信息描述, 可通过 坐标_取数量() 系列函数接口来解析
    CXText FindColorEx(int x1, int y1, int x2, int y2, const wchar_t* color, double sim, int dir);

    //@备注 查找指定区域内的所有颜色,不返回坐标,只返回是否找到  0没找到  1所有颜色都找到
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色字符串  文本类型变量  颜色字符串,可以支持偏色,多色,例如 "ffffff-202020|000000-000000"  只支持RGB颜色
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@别名 图色_找色判断(x1,y1,x2,y2,颜色字符串,相似度)
    //@返回 1所有颜色都找到  0未找到,或部分颜色未找到
    int FindMulColor(int x1, int y1, int x2, int y2, const wchar_t* color, double sim);

    //@备注 根据指定的多点查找颜色坐标
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色字符串  文本类型变量  颜色字符串,可以支持偏色,多色,例如 "ffffff-202020|000000-000000"  只支持RGB颜色
    //@参数 点描述  文本类型变量  坐标与偏色描述,格式为"x1|y1|RRGGBB-DRDGDB|RRGGBB-DRDGDB……,……xn|yn|RRGGBB-DRDGDB|RRGGBB-DRDGDB……"
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 查找方向  整数类型变量  0左右上下  1左右下上  2右左上下  3右左下上  4中心向外  5上下左右  6上下右左  7下上左右  9下上右左
    //@参数 intX  整数类型变量  传参  返回找到的首个坐标x
    //@参数 intY  整数类型变量  传参  返回找到的首个坐标y
    //@别名 图色_找色多点(x1,y1,x2,y2,颜色字符串,点描述,相似度,查找方向,intX,intY)
    //@返回 1找到  0未找到
    int FindMultiColor(int x1, int y1, int x2, int y2, const wchar_t* first_color, const wchar_t* offset_color, double sim, int dir, int& intX, int& intY);

    //@备注 根据指定的多点查找所有颜色坐标
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色字符串  文本类型变量  颜色字符串,可以支持偏色,多色,例如 "ffffff-202020|000000-000000"  只支持RGB颜色
    //@参数 点描述  文本类型变量  坐标与偏色描述,格式为"x1|y1|RRGGBB-DRDGDB|RRGGBB-DRDGDB……,……xn|yn|RRGGBB-DRDGDB|RRGGBB-DRDGDB……"
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 查找方向  整数类型变量  0左右上下  1左右下上  2右左上下  3右左下上  4中心向外  5上下左右  6上下右左  7下上左右  9下上右左
    //@别名 图色_找色多点Ex(x1,y1,x2,y2,颜色字符串,点描述,相似度,查找方向)
    //@返回 返回所有颜色信息的坐标信息描述, 可通过 坐标_取数量() 系列函数接口来解析
    CXText FindMultiColorEx(int x1, int y1, int x2, int y2, const wchar_t* first_color, const wchar_t* offset_color, double sim, int dir);

    //@备注 查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理.这个函数可以查找多个图片,只返回第一个找到的XY坐标.
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 图片文件  文本类型变量  图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
    //@参数 偏色描述  文本类型变量  颜色色偏比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示)
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 查找方向  整数类型变量  0左右上下  1左右下上  2右左上下  3右左下上  4中心向外  5上下左右  6上下右左  7下上左右  9下上右左
    //@参数 intX  整数类型变量  传参  返回找到的首个坐标x
    //@参数 intY  整数类型变量  传参  返回找到的首个坐标y
    //@别名 图色_找图(x1,y1,x2,y2,图片文件,偏色描述,相似度,查找方向,intX,intY)
    //@返回 1找到  0未找到
    int FindPic(int x1, int y1, int x2, int y2, const wchar_t* pic_name, const wchar_t* delta_color, double sim, int dir, int& intX, int& intY);

    //@备注 查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理.这个函数可以查找多个图片,并且返回所有找到的图像的坐标.
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 图片文件  文本类型变量  图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
    //@参数 偏色描述  文本类型变量  颜色色偏比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示)
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 查找方向  整数类型变量  0左右上下  1左右下上  2右左上下  3右左下上  4中心向外  5上下左右  6上下右左  7下上左右  9下上右左
    //@别名 图色_找图Ex(x1,y1,x2,y2,图片文件,偏色描述,相似度,查找方向)
    //@返回 返回所有图片信息的坐标信息描述, 可通过 坐标_取数量() 系列函数接口来解析
    CXText FindPicEx(int x1, int y1, int x2, int y2, const wchar_t* pic_name, const wchar_t* delta_color, double sim, int dir);

    //@备注 此函数同 图色_找图Ex() 只是返回值不同,格式 "图片名,坐标X,坐标Y"
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 图片文件  文本类型变量  图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
    //@参数 偏色描述  文本类型变量  颜色色偏比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示)
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 查找方向  整数类型变量  0左右上下  1左右下上  2右左上下  3右左下上  4中心向外  5上下左右  6上下右左  7下上左右  9下上右左
    //@别名 图色_找图ExS(x1,y1,x2,y2,图片文件,偏色描述,相似度,查找方向)
    //@返回 返回所有图片信息的坐标信息描述, 可通过 坐标_取数量() 系列函数接口来解析
    CXText FindPicExS(int x1, int y1, int x2, int y2, const wchar_t* pic_name, const wchar_t* delta_color, double sim, int dir);

    //@备注 查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理.这个函数可以查找多个图片,只返回第一个找到的XY坐标.这个函数要求图片是数据地址.
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 内存图片信息  文本类型变量  图片数据地址集合  使用 图色_内存图片信息生成() 的返回值
    //@参数 偏色描述  文本类型变量  颜色色偏比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示)
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 查找方向  整数类型变量  0左右上下  1左右下上  2右左上下  3右左下上  4中心向外  5上下左右  6上下右左  7下上左右  9下上右左
    //@参数 intX  整数类型变量  传参  返回找到的首个坐标x
    //@参数 intY  整数类型变量  传参  返回找到的首个坐标y
    //@别名 图色_内存找图(x1,y1,x2,y2,内存图片信息,偏色描述,相似度,查找方向,intX,intY)
    //@返回 1找到  0未找到
    int FindPicMem(int x1, int y1, int x2, int y2, const wchar_t* pic_info, const wchar_t* delta_color, double sim, int dir, int& intX, int& intY);

    //@备注 查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理.这个函数可以查找多个图片,并且返回所有找到的图像的坐标.通过 坐标_取数量 等接口来解析
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 内存图片信息  文本类型变量  图片数据地址集合  使用 图色_内存图片信息生成() 的返回值
    //@参数 偏色描述  文本类型变量  颜色色偏比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示)
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 查找方向  整数类型变量  0左右上下  1左右下上  2右左上下  3右左下上  4中心向外  5上下左右  6上下右左  7下上左右  9下上右左
    //@别名 图色_内存找图Ex(x1,y1,x2,y2,内存图片信息,偏色描述,相似度,查找方向)
    //@返回 返回所有图片信息的坐标信息描述, 可通过 坐标_取数量() 系列函数接口来解析
    CXText FindPicMemEx(int x1, int y1, int x2, int y2, const wchar_t* pic_info, const wchar_t* delta_color, double sim, int dir);

    //@备注 此函数同 图色_找图() 只是返回值不同,格式 "图片名,坐标X,坐标Y"
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 图片文件  文本类型变量  图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
    //@参数 偏色描述  文本类型变量  颜色色偏比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示)
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 查找方向  整数类型变量  0左右上下  1左右下上  2右左上下  3右左下上  4中心向外  5上下左右  6上下右左  7下上左右  9下上右左
    //@参数 intX  整数类型变量  传参  返回找到的首个坐标x
    //@参数 intY  整数类型变量  传参  返回找到的首个坐标y
    //@别名 图色_找图S(x1,y1,x2,y2,图片文件,偏色描述,相似度,查找方向,intX,intY)
    //@返回 返回所有图片信息的坐标信息描述, 可通过 坐标_取数量() 系列函数接口来解析
    CXText FindPicS(int x1, int y1, int x2, int y2, const wchar_t* pic_name, const wchar_t* delta_color, double sim, int dir, int& intX, int& intY);

    //@备注 查找指定的形状.形状的描述同按键的抓抓.具体可以参考按键的抓抓.和按键的语法不同,需要用大漠综合工具的颜色转换
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 形状描述  文本类型变量  坐标偏移描述 可以支持任意多个点 格式和按键自带的Color插件意义相同
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 查找方向  整数类型变量  0左右上下  1左右下上  2右左上下  3右左下上  4中心向外  5上下左右  6上下右左  7下上左右  9下上右左
    //@参数 intX  整数类型变量  传参  返回找到的首个坐标x
    //@参数 intY  整数类型变量  传参  返回找到的首个坐标y
    //@别名 图色_找形状(x1,y1,x2,y2,形状描述,相似度,查找方向,intX,intY)
    //@返回 1找到  0未找到
    int FindShape(int x1, int y1, int x2, int y2, const wchar_t* offset_color, double sim, int dir, int& intX, int& intY);

    //@备注 查找所有指定的形状的坐标.形状的描述同按键的抓抓.具体可以参考按键的抓抓
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 形状描述  文本类型变量  坐标偏移描述 可以支持任意多个点 格式和按键自带的Color插件意义相同
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 查找方向  整数类型变量  0左右上下  1左右下上  2右左上下  3右左下上  4中心向外  5上下左右  6上下右左  7下上左右  9下上右左
    //@别名 图色_找形状Ex(x1,y1,x2,y2,形状描述,相似度,查找方向)
    //@返回 返回所有图片信息的坐标信息描述, 可通过 坐标_取数量() 系列函数接口来解析
    CXText FindShapeEx(int x1, int y1, int x2, int y2, const wchar_t* offset_color, double sim, int dir);

    //@备注 释放指定的图片,此函数不必要调用,除非你想节省内存.
    //@参数 图片名  文本类型变量  件名比如"1.bmp|2.bmp|3.bmp" 等,可以使用通配符 "*.bmp" "a?c*.bmp" ?匹配单个任意字符,*匹配任意个任意字符
    //@别名 图色_图片释放(图片名)
    //@返回 1成功  0失败
    int FreePic(const wchar_t* pic_name);

    //@备注 获取范围(x1,y1,x2,y2)颜色的均值
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@别名 图色_取色均值HSV(x1,y1,x2,y2)
    //@返回 格式 "H.S.V"
    CXText GetAveHSV(int x1, int y1, int x2, int y2);

    //@备注 获取范围(x1,y1,x2,y2)颜色的均值
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@别名 图色_取色均值RGB(x1,y1,x2,y2)
    //@返回 格式 "RRGGBB"
    CXText GetAveRGB(int x1, int y1, int x2, int y2);

    //@备注 获取(x,y)的颜色
    //@参数 x  整数类型变量  X坐标
    //@参数 y  整数类型变量  y坐标
    //@别名 图色_取色(x,y)
    //@返回 格式 "RRGGBB"
    CXText GetColor(int x, int y);

    //@备注 获取(x,y)的颜色
    //@参数 x  整数类型变量  X坐标
    //@参数 y  整数类型变量  y坐标
    //@别名 图色_取色BGR(x,y)
    //@返回 格式 "BBGGRR"
    CXText GetColorBGR(int x, int y);

    //@备注 获取(x,y)的HSV颜色
    //@参数 x  整数类型变量  X坐标
    //@参数 y  整数类型变量  y坐标
    //@别名 图色_取色HSV(x,y)
    //@返回 格式 "H.S.V"
    CXText GetColorHSV(int x, int y);

    //@备注 获取指定区域的颜色数量,颜色格式"RRGGBB-DRDGDB"
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色字符串  文本类型变量  颜色字符串,可以支持偏色,多色,例如 "ffffff-202020|000000-000000"  只支持RGB颜色
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@别名 图色_取色数量(x1,y1,x2,y2,颜色字符串,相似度)
    int GetColorNum(int x1, int y1, int x2, int y2, const wchar_t* color, double sim);

    //@备注 获取指定图片的尺寸,如果指定的图片已经被加入缓存,则从缓存中获取信息.此接口也会把此图片加入缓存
    //@参数 图片名 文本类型变量  文件名 比如"1.bmp"
    //@别名 图色_取图片尺寸(图片名)
    CXText GetPicSize(const wchar_t* pic_name);

    //@备注 获取指定区域的图像,用二进制数据的方式返回,方便二次开发.
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@别名 图色_截图内存数据(x1,y1,x2,y2)
    int GetScreenData(int x1, int y1, int x2, int y2);

    //@备注 获取指定区域的图像,用24位位图的数据格式返回,方便二次开发.（或者可以配合基本_设置图色输入模式的mem模式）
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 内存地址  整数类型变量  返回图片的数据指针
    //@参数 数据长度  整数类型变量  返回图片的数据长度
    //@别名 图色_截图内存数据BMP(x1,y1,x2,y2,内存地址,数据长度)
    int GetScreenDataBmp(int x1, int y1, int x2, int y2, int& data, int& size);

    //@备注 转换图片格式为24位BMP格式.
    //@参数 原图片文件  文本类型变量  要转换的图片名
    //@参数 保存文件名  文本类型变量  要保存的BMP图片名
    //@别名 图色_转为BMP(原图片文件,保存文件名)
    int ImageToBmp(const wchar_t* pic_name, const wchar_t* bmp_name);

    //@备注 判断指定的区域,在指定的时间内(秒),图像数据是否一直不变.(卡屏)
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 等待时间  整数类型变量  需要等待的时间,单位是秒
    //@别名 图色_判断卡屏(x1,y1,x2,y2,等待时间)
    //@返回 0没有卡屏,图像数据有变化  1卡屏,图像数据在等待时间内无变化
    int IsDisplayDead(int x1, int y1, int x2, int y2, int t);

    //@备注 预先加载指定的图片,在操作和图片相关函数时,省加载图片的时间。
    //@参数 图片名 文本类型变量  文件名 比如"1.bmp"
    //@别名 图色_图片预加载(图片名)
    //@返回 1成功  0失败
    int LoadPic(const wchar_t* pic_name);

    //@备注 将内存图片数据预加载定义为虚拟文件名,之后可直接用 虚拟文件名 进行找图
    //@参数 图片数据地址 整数类型变量  BMP图像首地址.(完整的BMP图像，不是经过解析的. 和BMP文件里的内容一致)
    //@参数 图片数据长度 整数类型变量  BMP图像大小.(和BMP文件大小一致)
    //@参数 虚拟文件名 文本类型变量  文件名,指定这个地址对应的图片名. 用于找图时使用.
    //@别名 图色_图片预加载Ex(图片数据地址,图片数据长度,虚拟文件名)
    //@返回 1成功  0失败
    int LoadPicByte(int addr, int size, const wchar_t* pic_name);

    //@备注 根据通配符获取文件集合
    //@参数 通配文件名  文本类型变量  比如 "*.bmp" "a?c*.bmp"  ?匹配单个任意字符  *匹配任意个任意字符
    //@别名 图色_取图片集合(通配文件名)
    //@返回 返回文件名集合信息 用于 图色_找图() 系列使用图片文件名的找图函数使用
    CXText MatchPicName(const wchar_t* pic_name);

    //@备注 把BGR(按键格式)的颜色格式转换为RGB
    //@参数 BGR颜色信息 文本类型变量  BGR格式的颜色字符串
    //@别名 图色_BGR转RGB(BGR颜色信息)
    CXText BGR2RGB(const wchar_t* bgr_color);

    //@备注 把RGB的颜色格式转换为BGR(按键格式)
    //@参数 RGB颜色信息 文本类型变量  RGB格式的颜色字符串
    //@别名 图色_RGB转BGR(RGB颜色信息)
    CXText RGB2BGR(const wchar_t* rgb_color);

    //@备注 设置图片密码,如果图片本身没有加密,那么此设置不影响不加密的图片,一样正常使用.
    //@参数 密码  文本类型变量
    //@别名 图色_设置图片密码(密码)
    //@返回 1成功  0失败
    int SetPicPwd(const wchar_t* pwd);

    //@备注 给指定的字库中添加一条字库信息.
    //@参数 字库序号  整数类型变量  字库的序号,取值为0-19,目前最多支持20个字库
    //@参数 字库描述串  文本类型变量  字库描述串，具体参考大漠综合工具中的字符定义
    //@别名 文字_字库添加(字库序号,字库描述串)
    //@返回 1成功  0失败
    int AddDict(int index, const wchar_t* dict_info);

    //@备注 清空指定的字库.
    //@参数 字库序号  整数类型变量  字库的序号,取值为0-19,目前最多支持20个字库
    //@别名 文字_字库清空(字库序号)
    //@返回 1成功  0失败
    int ClearDict(int index);

    //@备注 根据指定的范围,以及指定的颜色描述,提取点阵信息,类似于大漠工具里的单独提取
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 定义信息  文本类型变量  待定义的文字,不能为空，且不能为关键符号"$"
    //@别名 文字_提取点阵信息(x1,y1,x2,y2,颜色格式串,定义信息)
    //@返回 用于 文字_字库添加() 所用参数
    CXText FetchWord(int x1, int y1, int x2, int y2, const wchar_t* color, const wchar_t* word);

    //@备注 在屏幕范围(x1,y1,x2,y2)内,查找string(可以是任意个字符串的组合)
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 查找的字符串  文本类型变量  待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 intX  整数类型变量  传参  返回X坐标没找到返回-1
    //@参数 intY  整数类型变量  传参  返回Y坐标没找到返回-1
    //@别名 文字_找字(x1,y1,x2,y2,查找的字符串,颜色格式串,相似度,intX,intY)
    //@返回 返回字符串的索引 没找到返回-1, 比如"长安|洛阳",若找到长安，则返回0
    int FindStr(int x1, int y1, int x2, int y2, const wchar_t* string, const wchar_t* color_format, double sim, int& intX, int& intY);

    //@备注 在屏幕范围(x1,y1,x2,y2)内,查找字符串(可以是任意个字符串的组合)
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 查找的字符串  文本类型变量  待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@别名 文字_找字Ex(x1,y1,x2,y2,查找的字符串,颜色格式串,相似度)
    //@返回 返回符合的所有字符串序号和坐标位置  可通过 坐标_取数量 等接口来解析
    CXText FindStrEx(int x1, int y1, int x2, int y2, const wchar_t* string, const wchar_t* color_format, double sim);

    //@备注 此函数同文字_找字Ex(),只是返回值不同 格式"字符串,坐标X,坐标Y"
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 查找的字符串  文本类型变量  待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@别名 文字_找字ExS(x1,y1,x2,y2,查找的字符串,颜色格式串,相似度)
    //@返回 返回符合的所有字符串和坐标位置  可通过 坐标_取数量 等接口来解析
    CXText FindStrExS(int x1, int y1, int x2, int y2, const wchar_t* string, const wchar_t* color_format, double sim);

    //@备注 同文字_找字()
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 查找的字符串  文本类型变量  待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 intX  整数类型变量  传参  返回X坐标没找到返回-1
    //@参数 intY  整数类型变量  传参  返回Y坐标没找到返回-1
    //@别名 文字_找字快速(x1,y1,x2,y2,查找的字符串,颜色格式串,相似度,intX,intY)
    //@返回 返回字符串的索引 没找到返回-1, 比如"长安|洛阳",若找到长安，则返回0
    int FindStrFast(int x1, int y1, int x2, int y2, const wchar_t* string, const wchar_t* color_format, double sim, int& intX, int& intY);

    //@备注 同文字_找字Ex()
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 查找的字符串  文本类型变量  待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@别名 文字_找字快速Ex(x1,y1,x2,y2,查找的字符串,颜色格式串,相似度)
    //@返回 返回符合的所有字符串序号和坐标位置  可通过 坐标_取数量 等接口来解析
    CXText FindStrFastEx(int x1, int y1, int x2, int y2, const wchar_t* string, const wchar_t* color_format, double sim);

    //@备注 同文字_找字ExS
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 查找的字符串  文本类型变量  待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@别名 文字_找字快速ExS(x1,y1,x2,y2,查找的字符串,颜色格式串,相似度)
    //@返回 返回符合的所有字符串和坐标位置  可通过 坐标_取数量 等接口来解析
    CXText FindStrFastExS(int x1, int y1, int x2, int y2, const wchar_t* string, const wchar_t* color_format, double sim);

    //@备注 同文字_找字S();
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 查找的字符串  文本类型变量  待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 intX  整数类型变量  传参  返回X坐标没找到返回-1
    //@参数 intY  整数类型变量  传参  返回Y坐标没找到返回-1
    //@别名 文字_找字快速S(x1,y1,x2,y2,查找的字符串,颜色格式串,相似度,intX,intY)
    //@返回 返回找到的字符串. 没找到的话返回长度为0的字符串.
    CXText FindStrFastS(int x1, int y1, int x2, int y2, const wchar_t* string, const wchar_t* color_format, double sim, int& intX, int& intY);

    //@备注 在屏幕范围(x1,y1,x2,y2)内,查找string(可以是任意个字符串的组合),并返回符合color_format的坐标位置
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 查找的字符串  文本类型变量  待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 intX  整数类型变量  传参  返回X坐标没找到返回-1
    //@参数 intY  整数类型变量  传参  返回Y坐标没找到返回-1
    //@别名 文字_找字S(x1,y1,x2,y2,查找的字符串,颜色格式串,相似度,intX,intY)
    //@返回 返回找到的字符串. 没找到的话返回长度为0的字符串.
    CXText FindStrS(int x1, int y1, int x2, int y2, const wchar_t* string, const wchar_t* color_format, double sim, int& intX, int& intY);

    //@备注 同 文字_找字() 但不使用设置的字库,而利用系统自带的字库,速度比 文字_找字() 稍慢.
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 查找的字符串  文本类型变量  待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 字体名称 文本类型变量  系统字体名,比如"宋体"
    //@参数 字体尺寸 整数类型变量  系统字体尺寸，这个尺寸一定要以大漠综合工具获取的为准
    //@参数 字体类别 整数类型变量  1粗体  2斜体  4下划线  8删除线
    //@参数 intX  整数类型变量  传参  返回X坐标没找到返回-1
    //@参数 intY  整数类型变量  传参  返回Y坐标没找到返回-1
    //@别名 文字_找字BY系统字库(x1,y1,x2,y2,查找的字符串,颜色格式串,相似度,字体名称,字体尺寸,字体类别,intX,intY)
    //@返回 返回字符串的索引 没找到返回-1, 比如"长安|洛阳",若找到长安，则返回0
    int FindStrWithFont(int x1, int y1, int x2, int y2, const wchar_t* string, const wchar_t* color_format, double sim, const wchar_t* font_name, int font_size, int flag, int& intX, int& intY);

    //@备注 同 文字_找字Ex() 但不使用设置的字库,而利用系统自带的字库,速度比 文字_找字Ex() 稍慢.
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 查找的字符串  文本类型变量  待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@参数 字体名称 文本类型变量  系统字体名,比如"宋体"
    //@参数 字体尺寸 整数类型变量  系统字体尺寸，这个尺寸一定要以大漠综合工具获取的为准
    //@参数 字体类别 整数类型变量  1粗体  2斜体  4下划线  8删除线
    //@别名 文字_找字BY系统字库Ex(x1,y1,x2,y2,查找的字符串,颜色格式串,相似度,字体名称,字体尺寸,字体类别)
    //@返回 返回符合的所有字符串序号和坐标位置  可通过 坐标_取数量 等接口来解析
    CXText FindStrWithFontEx(int x1, int y1, int x2, int y2, const wchar_t* string, const wchar_t* color_format, double sim, const wchar_t* font_name, int font_size, int flag);

    //@备注 获取指定字库中指定条目的字库信息
    //@参数 字库序号  整数类型变量  字库序号(0-9)
    //@参数 条目序号  整数类型变量  字库条目序号(从0开始计数,数值不得超过指定字库的字库上限,具体参考 文字_取字库条目数()
    //@别名 文字_取字库条目信息(字库序号,条目序号)
    //@返回 字库条目信息. 失败返回空串
    CXText GetDict(int index, int font_index);

    //@备注 获取指定的字库中的字符数量.
    //@参数 字库序号  整数类型变量  字库序号(0-9)
    //@别名 文字_取字库条目数(字库序号)
    int GetDictCount(int index);

    //@备注 根据指定的文字,以及指定的系统字库信息,获取字库描述信息
    //@参数 字符串 文本类型变量  需要获取的字符串
    //@参数 字体名称 文本类型变量  系统字体名,比如"宋体"
    //@参数 字体尺寸 整数类型变量  系统字体尺寸，这个尺寸一定要以大漠综合工具获取的为准
    //@参数 字体类别 整数类型变量  1粗体  2斜体  4下划线  8删除线
    //@别名 文字_取系统字库信息(字符串,字体名称,字体尺寸,字体类别)
    //@返回 字库信息,每个字符的字库信息用"|"来分割
    CXText GetDictInfo(const wchar_t* str, const wchar_t* font_name, int font_size, int flag);

    //@备注 获取当前使用的字库序号(0-9)
    //@别名 文字_取当前字库序号()
    int GetNowDict();

    //@备注 对插件部分接口的返回值进行解析,并返回坐标个数
    //@参数 坐标信息 文本类型变量  部分接口的返回串
    //@别名 坐标_取数量(坐标信息)
    int GetResultCount(const wchar_t* ret);

    //@备注 对插件部分接口的返回值进行解析,并根据指定的第index个坐标,传参返回xy数值
    //@参数 坐标信息 文本类型变量  部分接口的返回串
    //@参数 序号 整数类型变量  第几个坐标 第一个坐标序号为0
    //@参数 intX  整数类型变量  传参  返回X坐标
    //@参数 intY  整数类型变量  传参  返回Y坐标
    //@别名 坐标_解析(坐标信息,序号,intX,intY)
    //@返回 1成功  0失败
    int GetResultPos(const wchar_t* ret, int index, int& intX, int& intY);

    //@备注 根据部分Ex接口的返回值,排除指定范围区域内的坐标
    //@参数 坐标信息  文本类型变量  部分接口的返回串
    //@参数 坐标类型  整数类型变量  0找图Ex与找字Ex类  1找色与色块类  2文字识别类  3找图ExS与找字ExS类
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@别名 坐标_排除(坐标信息,坐标类型,x1,y1,x2,y2)
    //@返回 经过筛选排除以后的坐标信息
    CXText ExcludePos(const wchar_t* all_pos, int type, int x1, int y1, int x2, int y2);

    //@备注 根据部分Ex接口的返回值，然后在所有坐标里找出距离指定坐标最近的那个坐标
    //@参数 坐标信息  文本类型变量  部分接口的返回串
    //@参数 坐标类型  整数类型变量  0找图Ex与找字Ex类  1找色与色块类  2文字识别类  3找图ExS与找字ExS类
    //@参数 x  整数类型变量
    //@参数 y  整数类型变量
    //@别名 坐标_筛选最近(坐标信息,坐标类型,x,y)
    //@返回 距指定坐标最近的坐标信息
    CXText FindNearestPos(const wchar_t* all_pos, int type, int x, int y);

    //@备注 根据部分Ex接口的返回值，然后对所有坐标根据对指定坐标的距离(或者指定X或者Y)进行从小到大的排序.
    //@参数 坐标信息  文本类型变量  部分接口的返回串
    //@参数 坐标类型  整数类型变量  0找图Ex与找字Ex类  1找色与色块类  2文字识别类  3找图ExS与找字ExS类
    //@参数 x  整数类型变量
    //@参数 y  整数类型变量
    //@别名 坐标_排序(坐标信息,坐标类型,x,y)
    CXText SortPosDistance(const wchar_t* all_pos, int type, int x, int y);

    //@备注 在使用GetWords进行词组识别以后,可以用此接口进行识别词组数量的计算.
    //@参数 识别信息  文本类型变量  文字_取词组解析() 的返回值
    //@别名 文字_取词组结果数量(识别信息)
    int GetWordResultCount(const wchar_t* str);

    //@备注 在使用GetWords进行词组识别以后,可以用此接口进行识别各个词组的坐标
    //@参数 识别信息  文本类型变量  文字_取词组解析() 的返回值
    //@参数 序号  整数类型变量    表示第几个词组
    //@参数 intX  整数类型变量  传参  返回X坐标
    //@参数 intY  整数类型变量  传参  返回Y坐标
    //@别名 文字_取词组结果坐标(识别信息,序号,intX,intY)
    //@返回 1成功  0失败
    int GetWordResultPos(const wchar_t* str, int index, int& intX, int& intY);

    //@备注 在使用GetWords进行词组识别以后,可以用此接口进行识别各个词组的内容
    //@参数 识别信息  文本类型变量  文字_取词组解析() 的返回值
    //@参数 序号  整数类型变量  表示第几个词组
    //@别名 文字_取词组结果文本(识别信息,序号)
    //@返回 对应序号的识别词组
    CXText GetWordResultStr(const wchar_t* str, int index);

    //@备注 根据指定的范围,以及设定好的词组识别参数(一般不用更改,除非你真的理解了)识别这个范围内所有满足条件的词组.比较适合用在未知文字的情况下,进行不定识别.
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@别名 文字_取词组识别(x1,y1,x2,y2,颜色格式串,相似度)
    //@返回 文字_取词组结果* 所用的信息
    CXText GetWords(int x1, int y1, int x2, int y2, const wchar_t* color, double sim);

    //@备注 根据指定的范围,以及设定好的词组识别参数(一般不用更改,除非你真的理解了)识别这个范围内所有满足条件的词组.这个识别函数不会用到字库。只是识别大概形状的位置
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@别名 文字_取词组识别无词库(x1,y1,x2,y2,颜色格式串)
    //@返回 文字_取词组结果* 所用的信息
    CXText GetWordsNoDict(int x1, int y1, int x2, int y2, const wchar_t* color);

    //@备注 识别屏幕范围(x1,y1,x2,y2)内符合color_format的字符串,并且相似度为sim,sim取值范围(0.1-1.0),这个值越大越精确,越大速度越快,越小速度越慢,请斟酌使用!
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@别名 文字_识别(x1,y1,x2,y2,颜色格式串,相似度)
    CXText Ocr(int x1, int y1, int x2, int y2, const wchar_t* color, double sim);

    //@备注 识别屏幕范围(x1,y1,x2,y2)内符合color_format的字符串,并且相似度为sim,sim取值范围(0.1-1.0),这个值越大越精确,越大速度越快,越小速度越慢,请斟酌使用!这个函数可以返回识别到的字符串,以及每个字符的坐标.
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@别名 文字_识别Ex(x1,y1,x2,y2,颜色格式串,相似度)
    CXText OcrEx(int x1, int y1, int x2, int y2, const wchar_t* color, double sim);

    //@备注 识别屏幕范围(x1,y1,x2,y2)内符合color_format的字符串,并且相似度为sim,sim取值范围(0.1-1.0),这个值越大越精确,越大速度越快,越小速度越慢,请斟酌使用!这个函数可以返回识别到的字符串,以及每个字符的坐标.这个同OcrEx,另一种返回形式.
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@别名 文字_识别One(x1,y1,x2,y2,颜色格式串,相似度)
    CXText OcrExOne(int x1, int y1, int x2, int y2, const wchar_t* color, double sim);

    //@备注 识别位图中区域(x1,y1,x2,y2)的文字
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 图片文件名  文本类型变量
    //@参数 颜色格式串  文本类型变量  颜色格式串.注意，RGB和HSV格式都支持.
    //@参数 相似度  双浮点类型变量  取值范围0.1-1.0
    //@别名 文字_识别BMP(x1,y1,x2,y2,图片文件名,颜色格式串,相似度)
    CXText OcrInFile(int x1, int y1, int x2, int y2, const wchar_t* pic_name, const wchar_t* color, double sim);

    //@备注 保存指定的字库到指定的文件中.
    //@参数 字库序号 整数类型变量  字库索引序号 取值为0-9对应10个字库
    //@参数 保存文件名  文本类型变量
    //@别名 文字_字库保存(字库序号,保存文件名)
    //@返回 1成功  0失败
    int SaveDict(int index, const wchar_t* file);

    //@备注 高级用户使用,在不使用字库进行词组识别前,可设定文字的列距,默认列距是1
    //@参数 列距  整数类型变量  最小列距
    //@别名 文字_设置识别列距_无字库(列距)
    //@返回 1成功  0失败
    int SetColGapNoDict(int col_gap);

    //@备注 设置字库文件  此函数速度很慢,全局初始化时调用一次即可,切换字库用  文字_字符切换()
    //@参数 字库序号 整数类型变量  字库索引序号 取值为0-9对应10个字库
    //@参数 字库文件 文本类型变量  字库文件名
    //@别名 文字_字库设置(字库序号,字库文件)
    //@返回 1成功  0失败
    int SetDict(int index, const wchar_t* file);

    //@备注 从内存中设置字库.
    //@参数 字库序号 整数类型变量  字库索引序号 取值为0-9对应10个字库
    //@参数 数据地址 整数类型变量  字库数据内存地址
    //@参数 数据长度 整数类型变量  字库数据长度
    //@别名 文字_字库设置BY内存(字库序号,数据地址,数据长度)
    //@返回 1成功  0失败
    int SetDictMem(int index, int addr, int size);

    //@备注 设置字库的密码,在SetDict前调用,目前的设计是,所有字库通用一个密码.
    //@参数 密码  文本类型变量
    //@别名 文字_字库密码(密码)
    int SetDictPwd(const wchar_t* pwd);

    //@备注 高级用户使用,在使用文字识别功能前,设定是否开启精准识别.
    //@参数 开关  整数类型变量  0关闭  1开启
    //@别名 文字_设置精准识别(开关)
    //@返回 1成功  0失败
    int SetExactOcr(int exact_ocr);

    //@备注 高级用户使用,在识别前,如果待识别区域有多行文字,可以设定列间距,默认的列间距是0,如果根据情况设定,可以提高识别精度。一般不用设定。
    //@参数 列距  整数类型变量  最小列间距
    //@别名 文字_设置识别列距(列距)
    //@返回 1成功  0失败
    int SetMinColGap(int min_col_gap);

    //@备注 高级用户使用,在识别前,如果待识别区域有多行文字,可以设定行间距,默认的行间距是1,如果根据情况设定,可以提高识别精度。一般不用设定。
    //@参数 行距  整数类型变量  最小行间距
    //@别名 文字_设置识别行距(行距)
    //@返回 1成功  0失败
    int SetMinRowGap(int min_row_gap);

    //@备注 高级用户使用,在不使用字库进行词组识别前,可设定文字的行距,默认行距是1
    //@参数 行距  整数类型变量  最小行距
    //@别名 文字_设置识别行距_无字库(行距)
    int SetRowGapNoDict(int row_gap);

    //@备注 高级用户使用,在识别词组前,可设定词组间的间隔,默认的词组间隔是5
    //@参数 单词间距  整数类型变量
    //@别名 文字_设置词组识别间隔(单词间距)
    //@返回 1成功  0失败
    int SetWordGap(int word_gap);

    //@备注 高级用户使用,在不使用字库进行词组识别前,可设定词组间的间隔,默认的词组间隔是5
    //@参数 单词间距  整数类型变量
    //@别名 文字_设置词组识别间隔_无字库(单词间距)
    //@返回 1成功  0失败
    int SetWordGapNoDict(int word_gap);

    //@备注 高级用户使用,在识别词组前,可设定文字的平均行高,默认的词组行高是10
    //@参数 行高  整数类型变量
    //@别名 文字_设置词组识别行高(行高)
    //@返回 1成功  0失败
    int SetWordLineHeight(int line_height);

    //@备注 高级用户使用,在不使用字库进行词组识别前,可设定文字的平均行高,默认的词组行高是10
    //@参数 行高  整数类型变量
    //@别名 文字_设置词组识别行高_无字库(行高)
    //@返回 1成功  0失败
    int SetWordLineHeightNoDict(int line_height);

    //@备注 表示使用哪个字库文件进行识别(index范围:0-9)设置之后,永久生效,除非再次设定
    //@参数 字库序号 整数类型变量  字库索引序号 取值为0-9对应10个字库
    //@别名 文字_字库切换(字库序号)
    //@返回 1成功  0失败
    int UseDict(int index);

    //@备注 激活指定窗口所在进程的输入法
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 输入法名字  文本类型变量  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts 下的每项 Layout Text 值就是输入法名字
    //@别名 杂项_输入法激活(窗口句柄,输入法名字)
    //@返回 1成功  0失败
    int ActiveInputMethod(int hwnd, const wchar_t* input_method);

    //@备注 检测指定窗口所在线程输入法是否开启
    //@参数 窗口句柄  整数类型变量  指定窗口句柄
    //@参数 输入法名字  文本类型变量  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts 下的每项 Layout Text 值就是输入法名字
    //@别名 杂项_输入法激活检测(窗口句柄,输入法名字)
    //@返回 1激活  0未激活
    int CheckInputMethod(int hwnd, const wchar_t* input_method);

    //@备注 检测系统中是否安装了指定输入法
    //@参数 输入法名字  文本类型变量  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts 下的每项 Layout Text 值就是输入法名字
    //@别名 杂项_输入法检测(输入法名字)
    int FindInputMethod(const wchar_t* input_method);

    //@备注 检测是否可以进入临界区,如果可以返回1,否则返回0.此函数如果返回1,则调用对象就会占用此互斥信号量,直到此对象调用LeaveCri,否则不会释放.注意:如果调用对象在释放时,会自动把本对象占用的互斥信号量释放.
    //@别名 杂项_临界区初进入()
    //@返回 1成功  0失败
    int EnterCri();

    //@备注 初始化临界区,必须在脚本开头调用一次.这个函数是强制把插件内的互斥信号量归0,无论调用对象是否拥有此信号量.
    //@别名 杂项_临界区初始化()
    //@返回 1成功  0失败
    int InitCri();

    //@备注 和EnterCri对应,离开临界区。此函数是释放调用对象占用的互斥信号量.注意,只有调用对象占有了互斥信号量,此函数才会有作用.否则没有任何作用.如果调用对象在释放时,会自动把本对象占用的互斥信号量释放.
    //@别名 杂项_临界区离开()
    //@返回 1成功  0失败
    int LeaveCri();

    //@备注 针对部分检测措施的保护盾  具体参考大漠接口说明  防护盾
    //@参数 开关  整数类型变量
    //@参数 模式  文本类型变量
    //@别名 防护_设置(开关,模式)
    //@返回 1成功  其他为失败,具体参考大漠接口说明
    long DmGuard(int enable, const wchar_t* type);

    //@备注 拷贝文件
    //@参数 原文件  文本类型变量
    //@参数 新文件  文本类型变量
    //@参数 覆盖模式  整数类型变量  出现新文件已存在时的覆盖选项  0不覆盖  1覆盖
    //@别名 文件_复制(原文件,新文件,覆盖模式)
    //@返回 1成功  0失败
    int CopyFile(const wchar_t* src_file, const wchar_t* dst_file, int over);

    //@备注 创建指定目录
    //@参数 目录路径  文本类型变量
    //@别名 文件_目录创建(目录路径)
    //@返回 1成功  0失败
    int CreateFolder(const wchar_t* folder);

    //@备注 解密指定的文件
    //@参数 文件名  文本类型变量
    //@参数 密码  文本类型变量
    //@别名 文件_解密(文件名,密码)
    //@返回 1成功  0失败
    int DecodeFile(const wchar_t* file, const wchar_t* pwd);

    //@备注 删除文件
    //@参数 文件名  文本类型变量
    //@别名 文件_删除(文件名)
    //@返回 1成功  0失败
    int DeleteFile(const wchar_t* file);

    //@备注 删除指定目录.
    //@参数 目录路径  文本类型变量
    //@别名 文件_目录删除(目录路径)
    //@返回 1成功  0失败
    int DeleteFolder(const wchar_t* folder);

    //@备注 删除指定的项或节
    //@参数 配置节名  文本类型变量  例"[config]"  配置节名为  "config"
    //@参数 配置项名  文本类型变量  如果这个变量为空串，则删除整个节
    //@参数 配置文件名  文本类型变量
    //@别名 文件_配置删除(配置节名,配置项名,配置文件名)
    //@返回 1成功  0失败
    int DeleteIni(const wchar_t* section, const wchar_t* key, const wchar_t* file);

    //@备注 删除指定的ini小节.支持加密文件
    //@参数 配置节名  文本类型变量  例"[config]"  配置节名为  "config"
    //@参数 配置项名  文本类型变量  如果这个变量为空串，则删除整个节
    //@参数 配置文件名  文本类型变量
    //@参数 密码  文本类型变量
    //@别名 文件_配置删除_带密码(配置节名,配置项名,配置文件名,密码)
    //@返回 1成功  0失败
    int DeleteIniPwd(const wchar_t* section, const wchar_t* key, const wchar_t* file, const wchar_t* pwd);

    //@备注 从internet上下载一个文件.
    //@参数 下载地址  文本类型变量  下载的url地址.
    //@参数 保存文件名  文本类型变量
    //@参数 连接超时  整数类型变量  连接超时时间,单位是毫秒
    //@别名 文件_下载(下载地址,保存文件名,连接超时)
    //@返回 1成功  0执行失败  -1网络连接失败  -2保存文件失败
    int DownloadFile(const wchar_t* url, const wchar_t* save_file, int timeout);

    //@备注 加密指定的文件.
    //@参数 文件名  文本类型变量
    //@参数 密码  文本类型变量
    //@别名 文件_加密(文件名,密码)
    //@返回 1成功  0失败
    int EncodeFile(const wchar_t* file, const wchar_t* pwd);

    //@备注 根据指定的ini文件以及节名,枚举此节中所有的项名
    //@参数 配置节名  文本类型变量  例"[config]"  配置节名为  "config"
    //@参数 配置文件名  文本类型变量
    //@别名 文件_配置枚举项(配置节名,配置文件名)
    //@返回 用"|"来连接,格式 "aaa|bbb|ccc" 如果没有则返回空字符串
    CXText EnumIniKey(const wchar_t* section, const wchar_t* file);

    //@备注 根据指定的ini文件以及节名,枚举此节中所有的项名.可支持加密文件
    //@参数 配置节名  文本类型变量  例"[config]"  配置节名为  "config"
    //@参数 配置文件名  文本类型变量
    //@参数 密码  文本类型变量
    //@别名 文件_配置枚举项_带密码(配置节名,配置文件名,密码)
    //@返回 用"|"来连接,格式 "aaa|bbb|ccc" 如果没有则返回空字符串
    CXText EnumIniKeyPwd(const wchar_t* section, const wchar_t* file, const wchar_t* pwd);

    //@备注 根据指定的ini文件,枚举此配置文件中所有的小节名
    //@参数 配置文件名  文本类型变量
    //@别名 文件_配置枚举节(配置文件名)
    //@返回 用"|"来连接,格式 "aaa|bbb|ccc" 如果没有则返回空字符串
    CXText EnumIniSection(const wchar_t* file);

    //@备注 根据指定的ini文件,枚举此ini中所有的Section(小节名)可支持加密文件
    //@参数 配置文件名  文本类型变量
    //@参数 密码  文本类型变量
    //@别名 文件_配置枚举节_带密码(配置文件名,密码)
    //@返回 用"|"来连接,格式 "aaa|bbb|ccc" 如果没有则返回空字符串
    CXText EnumIniSectionPwd(const wchar_t* file, const wchar_t* pwd);

    //@备注 获取指定的文件长度
    //@参数 文件名  文本类型变量
    //@别名 文件_取长度(文件名)
    int GetFileLength_(const wchar_t* file);

    //@备注 判断指定文件是否存在
    //@参数 文件名  文本类型变量
    //@别名 文件_是否存在(文件名)
    //@返回 1存在  0不存在
    int IsFileExist(const wchar_t* file);

    //@备注 移动文件
    //@参数 原始文件名  文本类型变量
    //@参数 目标文件名  文本类型变量
    //@别名 文件_移动(原始文件名,目标文件名)
    //@返回 1成功  0失败
    int MoveFile(const wchar_t* src_file, const wchar_t* dst_file);

    //@备注 从指定的文件读取内容.
    //@参数 文件名  文本类型变量
    //@别名 文件_读取(文件名)
    CXText ReadFile(const wchar_t* file);

    //@备注 从Ini中读取指定信息.
    //@参数 配置节名  文本类型变量  例"[config]"  配置节名为  "config"
    //@参数 配置项名  文本类型变量
    //@参数 配置文件名  文本类型变量
    //@别名 文件_配置项读取(配置节名,配置项名,配置文件名)
    CXText ReadIni(const wchar_t* section, const wchar_t* key, const wchar_t* file);

    //@备注 从Ini中读取指定信息.可支持加密文件
    //@参数 配置节名  文本类型变量  例"[config]"  配置节名为  "config"
    //@参数 配置项名  文本类型变量
    //@参数 配置文件名  文本类型变量
    //@参数 密码  文本类型变量
    //@别名 文件_配置项读取_带密码(配置节名,配置项名,配置文件名,密码)
    CXText ReadIniPwd(const wchar_t* section, const wchar_t* key, const wchar_t* file, const wchar_t* pwd);

    //@备注 弹出选择文件夹对话框,等用户选择之后返回
    //@别名 文件_弹出选择目录()
    //@返回 选择的文件夹全路径
    CXText SelectDirectory();

    //@备注 弹出选择文件对话框,等用户选择之后返回
    //@别名 文件_弹出选择文件()
    //@返回 选择的文件全路径
    CXText SelectFile();

    //@备注 向指定文件追加字符串
    //@参数 文件名  文本类型变量
    //@参数 追加文本  文本类型变量
    //@别名 文件_追加文本(文件名,追加文本)
    //@返回 1成功  0失败
    int WriteFile(const wchar_t* file, const wchar_t* content);

    //@备注 向指定的Ini写入信息
    //@参数 配置节名  文本类型变量  例"[config]"  配置节名为  "config"
    //@参数 配置项名  文本类型变量
    //@参数 配置项值  文本类型变量
    //@参数 配置文件名  文本类型变量
    //@别名 文件_配置项写出(配置节名,配置项名,配置项值,配置文件名)
    //@返回 1成功  0失败
    int WriteIni(const wchar_t* section, const wchar_t* key, const wchar_t* value, const wchar_t* file);

    //@备注 向指定的Ini写入信息.支持加密文件
    //@参数 配置节名  文本类型变量  例"[config]"  配置节名为  "config"
    //@参数 配置项名  文本类型变量
    //@参数 配置项值  文本类型变量
    //@参数 配置文件名  文本类型变量
    //@参数 密码  文本类型变量
    //@别名 文件_配置项写出_带密码(配置节名,配置项名,配置项值,配置文件名,密码)
    //@返回 1成功  0失败
    int WriteIniPwd(const wchar_t* section, const wchar_t* key, const wchar_t* value, const wchar_t* file, const wchar_t* pwd);

    //@备注 蜂鸣器
    //@参数 频率  整数类型变量
    //@参数 时长  整数类型变量  单位毫秒
    //@别名 系统_蜂鸣器(频率,时长)
    //@返回 1成功  0失败
    int Beep(int f, int duration);

    //@备注 检测当前系统是否有开启屏幕字体平滑
    //@别名 系统_字体平滑检测()
    //@返回 1已开启  0未开启
    int CheckFontSmooth();

    //@备注 开启当前系统屏幕字体平滑.同时开启系统的ClearType功能
    //@别名 系统_字体平滑开启()
    //@返回 1成功  0失败
    int EnableFontSmooth();

    //@备注 关闭当前系统屏幕字体平滑.同时关闭系统的ClearType功能
    //@别名 系统_字体平滑关闭()
    //@返回 1成功  0失败
    int DisableFontSmooth();

    //@备注 延时指定的毫秒,过程中不阻塞UI操作
    //@参数 延时时长  整数类型变量  单位毫秒
    //@别名 系统_延时(延时时长)
    int Delay(int mis);

    //@备注 随机延时指定范围内毫秒,过程中不阻塞UI操作
    //@参数 最小值  整数类型变量
    //@参数 最大值  整数类型变量
    //@别名 系统_延迟Ex(最小值,最大值)
    int Delays(int mis_min, int mis_max);

    //@备注 关闭电源管理,不会进入睡眠(此函数调用以后,并不会更改系统电源设置)
    //@别名 系统_关闭电源管理()
    //@返回 1成功  0失败
    int DisablePowerSave();

    //@备注 关闭屏幕保护.
    //@别名 系统_关闭屏幕保护()
    //@返回 1成功  0失败
    int DisableScreenSave();

    //@备注 退出系统(注销重启关机)
    //@参数 模式  整数类型变量  0注销系统  1关机  2重启
    //@别名 系统_关闭(模式)
    //@返回 1成功  0失败
    int ExitOs(int type);

    //@备注 得到系统的路径
    //@参数 目录类型  整数类型变量  0-当前路径  1-系统路径(system32路径)  2-windows路径  3临时目录路径(temp)  4当前进程(exe)所在的路径
    //@别名 系统_取目录(目录类型)
    CXText GetDir(int type);

    //@备注 获取本机的硬盘序列号.支持idescsi硬盘.要求调用进程必须有管理员权限.否则返回空串.
    //@别名 系统_取硬盘序列号()
    CXText GetDiskSerial();

    //@备注 获取本机的显卡信息.
    //@别名 系统_取显卡信息()
    CXText GetDisplayInfo();

    //@备注 获取本机的机器码.(带网卡).此机器码用于插件网站后台.要求调用进程必须有管理员权限.否则返回空串.
    //@别名 系统_取本机机器码()
    CXText GetMachineCode();

    //@备注 获取本机的机器码.(不带网卡)要求调用进程必须有管理员权限.否则返回空串.
    //@别名 系统_取本机机器码_不带网卡()
    CXText GetMachineCodeNoMac();

    //@备注 从网络获取当前北京时间
    //@别名 系统_取网络时间()
    //@返回 时间文本 格式 "2001-11-01 23:14:08"
    CXText GetNetTime();

    //@备注 根据指定时间服务器IP,从网络获取当前北京时间
    //@参数 服务器  文本类型变量  IP或者域名,并且支持多个IP或者域名连接
    //@别名 系统_取网络时间指定(服务器)
    //@返回 时间文本 格式 "2001-11-01 23:14:08"
    CXText GetNetTimeByIp(const wchar_t* ip);

    //@备注 得到操作系统的类型
    //@别名 系统_取类型()
    //@返回 0-win95/98/me/nt4.0  1-xp/2000  2-2003/2003R2/xp64  3-win7/2008R2  4-vista/2008  5-win8/2012  6-win8.1/2012 R2  7-win10/2016 TP
    int GetOsType();

    //@备注 获取屏幕的色深.
    //@别名 系统_取屏幕色深()
    int GetScreenDepth();

    //@备注 获取屏幕的高度.
    //@别名 系统_取屏幕高度()
    int GetScreenHeight();

    //@备注 获取屏幕的宽度.
    //@别名 系统_取屏幕宽度()
    int GetScreenWidth();

    //@备注 获取当前系统从开机到现在所经历过的时间,单位是毫秒
    //@别名 系统_取启动时间()
    //@返回 时间(单位毫秒)
    int GetTime();

    //@备注 判断当前系统是否是64位操作系统
    //@别名 系统_是否64位系统()
    //@返回 1是  0不是
    int Is64Bit();

    //@备注 运行指定的应用程序
    //@参数 程序路径  文本类型变量  指定的可执行程序全路径
    //@参数 模式  整数类型变量  0普通模式  1加强模式
    //@别名 系统_运行程序(程序路径,模式)
    //@返回 1成功  0失败
    int RunApp(const wchar_t* app_path, int mode);

    //@备注 获取剪贴板的内容
    //@别名 系统_剪辑板取内容()
    CXText GetClipboard();

    //@备注 设置剪贴板的内容
    //@参数 设置内容  文本类型变量  以字符串表示的剪贴板内容
    //@别名 系统_剪辑板置内容(设置内容)
    //@返回 1成功  0失败
    int SetClipboard(const wchar_t* value);

    //@备注 设置当前系统的硬件加速级别(此函数只在XP 2003系统有效)
    //@参数 等级  整数类型变量  取值范围为0-5.  0表示关闭硬件加速。5表示完全打开硬件加速.
    //@别名 系统_设置硬件加速(等级)
    //@返回 1成功  0失败
    int SetDisplayAcceler(int level);

    //@备注 设置系统的分辨率系统色深
    //@参数 宽度  整数类型变量
    //@参数 高度  整数类型变量
    //@参数 色深  整数类型变量
    //@别名 系统_设置分辨率(宽度,高度,色深)
    //@返回 1成功  0失败
    int SetScreen(int width, int height, int depth);

    //@备注 检测当前系统是否有开启UAC(用户账户控制)
    //@别名 系统_UAC检测()
    //@返回 1已开启  0已关闭
    int CheckUAC();

    //@备注 设置当前系统的UAC(用户账户控制)
    //@参数 开关  整数类型变量  0关闭  1开启
    //@别名 系统_UAC控制(开关)
    //@返回 1成功  0失败
    int SetUAC(int enable);

    //@备注 播放指定的MP3或者wav文件
    //@参数 音频文件名  文本类型变量
    //@别名 系统_音乐播放(音频文件名)
    //@返回 成功则返回播放ID,用于控制停止  失败返回0
    int Play(const wchar_t* media_file);

    //@备注 停止指定的音乐
    //@参数 播放ID  整数类型变量  播放成功时返回的ID
    //@别名 系统_音乐停止(播放ID)
    int Stop(int id);

    //@备注 把双精度浮点数转换成十六进制文本的字节码
    //@参数 值  双浮点类型变量
    //@别名 内存_取字节码_双浮点(值)
    //@返回 十六进制文本字符串形式表达的数据. 可以用于 内存_写数据() 内存_找数据() 内存_找数据Ex() 等接口
    CXText DoubleToData(double value);

    //@备注 把单精度浮点数转换成十六进制文本的字节码
    //@参数 值  单浮点类型变量
    //@别名 内存_取字节码_单浮点(值)
    //@返回 十六进制文本字符串形式表达的数据. 可以用于 内存_写数据() 内存_找数据() 内存_找数据Ex() 等接口
    CXText FloatToData(float value);

    //@备注 把整数转换成十六进制文本的字节码
    //@参数 值  整数类型变量
    //@参数 整数类型  整数类型变量  0-32位(4字节,一般都选这个)  1-16位(2字节)  2-8位(1字节)
    //@别名 内存_取字节码_整数(值,整数类型)
    CXText IntToData(int value, int type);

    //@备注 把字符串转换成十六进制文本的字节码
    //@参数 值  文本类型变量
    //@参数 转换类型  整数类型变量  0-返回表达Ascii文本的字节码  1-返回表达Unicode文本的字节码
    //@别名 内存_取字节码_文本(值,转换类型)
    CXText StringToData(const wchar_t* value, int type);

    //@备注 搜索指定的二进制数据,默认步长是1.如果要定制步长,请用 内存_找数据Ex()
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 地址集合  指定搜索的地址集合，字符串类型，这个地方可以是上次 内存_找XX() 的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)
    //@参数 字节码  文本类型变量  要搜索的二进制数据 以字符串的形式描述,支持??通配符 例如 "00 01 23 45 67 86 ?? ab ce f1"
    //@别名 内存_找数据(窗口句柄,地址集合,字节码)
    //@返回 返回搜索到的地址集合,地址格式 "addr1|addr2|addr3…|addrn"
    CXText FindData(int hwnd, const wchar_t* addr_range, const wchar_t* data);

    //@备注 搜索指定的二进制数据.
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 地址集合  指定搜索的地址集合，字符串类型，这个地方可以是上次 内存_找XX() 的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)
    //@参数 字节码  文本类型变量  要搜索的二进制数据 以字符串的形式描述,支持??通配符 例如 "00 01 23 45 67 86 ?? ab ce f1"
    //@参数 搜索步长  整数类型变量
    //@参数 开多线程  整数类型变量  表示是否开启多线程查找  0不开启  1开启
    //@参数 快速扫描  整数类型变量  1表示开启快速扫描(略过只读内存)  0表示所有内存类型全部扫描
    //@别名 内存_找数据Ex(窗口句柄,地址集合,字节码,搜索步长,开多线程,快速扫描)
    //@返回 返回搜索到的地址集合,地址格式 "addr1|addr2|addr3…|addrn"
    CXText FindDataEx(int hwnd, const wchar_t* addr_range, const wchar_t* data, int step, int multi_thread, int mode);

    //@备注 搜索指定的双精度浮点数,默认步长是1.如果要定制步长,请用 内存_找双浮点Ex()
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 地址集合  指定搜索的地址集合，字符串类型，这个地方可以是上次 内存_找XX() 的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)
    //@参数 最小值  双浮点类型变量
    //@参数 最大值  双浮点类型变量
    //@别名 内存_找双浮点(窗口句柄,地址集合,最小值,最大值)
    //@返回 返回搜索到的地址集合,地址格式 "addr1|addr2|addr3…|addrn"
    CXText FindDouble(int hwnd, const wchar_t* addr_range, double double_value_min, double double_value_max);

    //@备注 搜索指定的双精度浮点数.
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 地址集合  指定搜索的地址集合，字符串类型，这个地方可以是上次 内存_找XX() 的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)
    //@参数 最小值  双浮点类型变量
    //@参数 最大值  双浮点类型变量
    //@参数 搜索步长  整数类型变量
    //@参数 开多线程  整数类型变量  表示是否开启多线程查找  0不开启  1开启
    //@参数 快速扫描  整数类型变量  1表示开启快速扫描(略过只读内存)  0表示所有内存类型全部扫描
    //@别名 内存_找双浮点(窗口句柄,地址集合,最小值,最大值,搜索步长,开多线程,快速扫描)
    //@返回 返回搜索到的地址集合,地址格式 "addr1|addr2|addr3…|addrn"
    CXText FindDoubleEx(int hwnd, const wchar_t* addr_range, double double_value_min, double double_value_max, int step, int multi_thread, int mode);

    //@备注 搜索指定的单精度浮点数,默认步长是1.如果要定制步长,请用 内存_找单浮点Ex()
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 地址集合  指定搜索的地址集合，字符串类型，这个地方可以是上次 内存_找XX() 的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)
    //@参数 最小值  单浮点类型变量
    //@参数 最大值  单浮点类型变量
    //@别名 内存_找单浮点(窗口句柄,地址集合,最小值,最大值)
    //@返回 返回搜索到的地址集合,地址格式 "addr1|addr2|addr3…|addrn"
    CXText FindFloat(int hwnd, const wchar_t* addr_range, float float_value_min, float float_value_max);

    //@备注 搜索指定的单精度浮点数.
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 地址集合  指定搜索的地址集合，字符串类型，这个地方可以是上次 内存_找XX() 的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)
    //@参数 最小值  单浮点类型变量
    //@参数 最大值  单浮点类型变量
    //@参数 搜索步长  整数类型变量
    //@参数 开多线程  整数类型变量  表示是否开启多线程查找  0不开启  1开启
    //@参数 快速扫描  整数类型变量  1表示开启快速扫描(略过只读内存)  0表示所有内存类型全部扫描
    //@别名 内存_找单浮点Ex(窗口句柄,地址集合,最小值,最大值,搜索步长,开多线程,快速扫描)
    //@返回 返回搜索到的地址集合,地址格式 "addr1|addr2|addr3…|addrn"
    CXText FindFloatEx(int hwnd, const wchar_t* addr_range, float float_value_min, float float_value_max, int step, int multi_thread, int mode);

    //@备注 搜索指定的整数,默认步长是1.如果要定制步长,请用 内存_找整数Ex()
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 地址集合  指定搜索的地址集合，字符串类型，这个地方可以是上次 内存_找XX() 的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)
    //@参数 最小值  整数类型变量
    //@参数 最大值  整数类型变量
    //@参数 整数类型  整数类型变量  0-32位(4字节,一般都选这个)  1-16位(2字节)  2-8位(1字节)
    //@别名 内存_找整数(窗口句柄,地址集合,最小值,最大值,整数类型)
    //@返回 返回搜索到的地址集合,地址格式 "addr1|addr2|addr3…|addrn"
    CXText FindInt(int hwnd, const wchar_t* addr_range, int int_value_min, int int_value_max, int type);

    //@备注 搜索指定的整数.
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 地址集合  指定搜索的地址集合，字符串类型，这个地方可以是上次 内存_找XX() 的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)
    //@参数 最小值  整数类型变量
    //@参数 最大值  整数类型变量
    //@参数 整数类型  整数类型变量  0-32位(4字节,一般都选这个)  1-16位(2字节)  2-8位(1字节)
    //@参数 搜索步长  整数类型变量
    //@参数 开多线程  整数类型变量  表示是否开启多线程查找  0不开启  1开启
    //@参数 快速扫描  整数类型变量  1表示开启快速扫描(略过只读内存)  0表示所有内存类型全部扫描
    //@别名 内存_找整数Ex(窗口句柄,地址集合,最小值,最大值,整数类型,搜索步长,开多线程,快速扫描)
    //@返回 返回搜索到的地址集合,地址格式 "addr1|addr2|addr3…|addrn"
    CXText FindIntEx(int hwnd, const wchar_t* addr_range, int int_value_min, int int_value_max, int type, int step, int multi_thread, int mode);

    //@备注 搜索指定的字符串,默认步长是1.如果要定制步长,请用 内存_找文本Ex()
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 地址集合  指定搜索的地址集合，字符串类型，这个地方可以是上次 内存_找XX() 的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)
    //@参数 字符串  文本类型变量
    //@参数 字符类型  整数类型变量  0-Ascii字符串  1-Unicode字符串
    //@别名 内存_找文本(窗口句柄,地址集合,字符串,字符类型)
    //@返回 返回搜索到的地址集合,地址格式 "addr1|addr2|addr3…|addrn"
    CXText FindString(int hwnd, const wchar_t* addr_range, const wchar_t* string_value, int type);

    //@备注 搜索指定的字符串.
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 地址集合  指定搜索的地址集合，字符串类型，这个地方可以是上次 内存_找XX() 的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)
    //@参数 字符串  文本类型变量
    //@参数 字符类型  整数类型变量  0-Ascii字符串  1-Unicode字符串
    //@参数 搜索步长  整数类型变量
    //@参数 开多线程  整数类型变量  表示是否开启多线程查找  0不开启  1开启
    //@参数 快速扫描  整数类型变量  1表示开启快速扫描(略过只读内存)  0表示所有内存类型全部扫描
    //@别名 内存_找文本Ex(窗口句柄,地址集合,字符串,字符类型,搜索步长,开多线程,快速扫描)
    //@返回 返回搜索到的地址集合,地址格式 "addr1|addr2|addr3…|addrn"
    CXText FindStringEx(int hwnd, const wchar_t* addr_range, const wchar_t* string_value, int type, int step, int multi_thread, int mode);

    //@备注 释放指定进程的不常用内存.
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@别名 内存_释放内存优化(窗口句柄)
    int FreeProcessMemory(int hwnd);

    //@备注 获取指定窗口所在进程的启动命令行
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@别名 内存_取启动命令行(窗口句柄)
    CXText GetCommandLine(int hwnd);

    //@备注 根据指定的窗口句柄,来获取对应窗口句柄进程下的指定模块的基址
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 模块名称  文本类型变量
    //@别名 内存_取模块地址(窗口句柄,模块名称)
    int GetModuleBaseAddr(int hwnd, int module);

    //@备注 读取指定地址的二进制数据
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 描述地址  文本类型变量  用字符串来描述地址，类似于CE的地址描述 例 "4DA678"  "<360SE.exe>+DA678"  "[<360SE.exe>+DA678]+3A"
    //@参数 读取长度  整数类型变量
    //@别名 内存_读字节码Ex(窗口句柄,描述地址,读取长度)
    //@返回 读取到的数值,以16进制表示的字符串 每个字节以空格相隔 比如"12 34 56 78 ab cd ef"
    CXText ReadData(int hwnd, const wchar_t* addr, int len);

    //@备注 读取指定地址的二进制数据
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 内存地址  整数类型变量
    //@参数 读取长度  整数类型变量
    //@别名 内存_读字节码(窗口句柄,内存地址,读取长度)
    //@返回 读取到的数值,以16进制表示的字符串 每个字节以空格相隔 比如"12 34 56 78 ab cd ef"
    CXText ReadDataAddr(int hwnd, int addr, int len);

    //@备注 读取指定地址的双精度浮点数
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 描述地址  文本类型变量  用字符串来描述地址，类似于CE的地址描述 例 "4DA678"  "<360SE.exe>+DA678"  "[<360SE.exe>+DA678]+3A"
    //@别名 内存_读双浮点Ex(窗口句柄,描述地址)
    double ReadDouble(int hwnd, const wchar_t* addr);

    //@备注 读取指定地址的双精度浮点数
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 内存地址  整数类型变量
    //@别名 内存_读双浮点(窗口句柄,内存地址)
    double ReadDoubleAddr(int hwnd, int addr);

    //@备注 读取指定地址的单精度浮点数
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 描述地址  文本类型变量  用字符串来描述地址，类似于CE的地址描述 例 "4DA678"  "<360SE.exe>+DA678"  "[<360SE.exe>+DA678]+3A"
    //@别名 内存_读单浮点Ex(窗口句柄,描述地址)
    float ReadFloat(int hwnd, const wchar_t* addr);

    //@备注 读取指定地址的单精度浮点数
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 内存地址  整数类型变量
    //@别名 内存_读单浮点Ex(窗口句柄,内存地址)
    float ReadFloatAddr(int hwnd, int addr);

    //@备注 读取指定地址的整数数值,类型可以是8位,16位或者32位
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 描述地址  文本类型变量  用字符串来描述地址，类似于CE的地址描述 例 "4DA678"  "<360SE.exe>+DA678"  "[<360SE.exe>+DA678]+3A"
    //@参数 整数类型  整数类型变量  0-32位有符号  1-16位有符号  2-8位有符号  3-16位无符号  4-8位无符号
    //@别名 内存_读整数Ex(窗口句柄,描述地址,整数类型)
    int ReadInt(int hwnd, const wchar_t* addr, int type);

    //@备注 读取指定地址的整数数值,类型可以是8位,16位或者32位
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 内存地址  整数类型变量
    //@参数 整数类型  整数类型变量  0-32位有符号  1-16位有符号  2-8位有符号  3-16位无符号  4-8位无符号
    //@别名 内存_读整数(窗口句柄,内存地址,整数类型)
    int ReadIntAddr(int hwnd, int addr, int type);

    //@备注 读取指定地址的字符串,可以是GBK字符串或者是Unicode字符串.(必须事先知道内存区的字符串编码方式)
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 描述地址  文本类型变量  用字符串来描述地址，类似于CE的地址描述 例 "4DA678"  "<360SE.exe>+DA678"  "[<360SE.exe>+DA678]+3A"
    //@参数 字符类型  整数类型变量  0-GBK字符串  1-Unicode字符串
    //@参数 读取长度  整数类型变量  需要读取的字节数目.如果为0，则自动判定字符串长度.
    //@别名 内存_读文本Ex(窗口句柄,描述地址,字符类型,读取长度)
    CXText ReadString(int hwnd, const wchar_t* addr, int type, int len);

    //@备注 读取指定地址的字符串,可以是GBK字符串或者是Unicode字符串.(必须事先知道内存区的字符串编码方式)
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 内存地址  整数类型变量
    //@参数 字符类型  整数类型变量  0-GBK字符串  1-Unicode字符串
    //@参数 读取长度  整数类型变量  需要读取的字节数目.如果为0，则自动判定字符串长度.
    //@别名 内存_读文本(窗口句柄,内存地址,字符类型,读取长度)
    CXText ReadStringAddr(int hwnd, int addr, int type, int len);

    //@备注 设置是否把所有内存查找接口的结果保存入指定文件.
    //@参数 指定文件  文本类型变量  设置要保存的搜索结果文件名. 如果为空字符串表示取消此功能.
    //@别名 内存_设置保存查找结果(指定文件)
    //@返回 1成功  0失败
    int SetMemoryFindResultToFile(const wchar_t* file);

    //@备注 设置是否把所有内存接口函数中的窗口句柄当作进程ID,以支持直接以进程ID来使用内存接口.
    //@参数 开关  整数类型变量  1开启  0关闭
    //@别名 内存_设置为进程ID调用(开关)
    //@返回 1成功  0失败
    int SetMemoryHwndAsProcessId(int en);

    //@备注 根据指定的PID,强制结束进程.
    //@参数 进程ID  整数类型变量
    //@别名 内存_结束进程(进程ID)
    //@返回 1成功  0失败
    int TerminateProcess(int pid);

    //@备注 在指定的窗口所在进程分配一段内存.
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 预分配地址  整数类型变量  预期的分配地址,一般为 0 自动分配,否则就尝试在此地址上分配内存.
    //@参数 内存大小  类型变量  需要分配的内存大小
    //@参数 内存类型  类型变量  0-可读可写可执行  1可读可执行,不可写  2可读可写,不可执行
    //@别名 内存_申请(窗口句柄,预分配地址,内存大小,内存类型)
    //@返回 分配的内存地址，如果是0表示分配失败.
    int VirtualAllocEx(int hwnd, int addr, int size, int type);

    //@备注 释放用 内存_申请() 分配的内存地址
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 内存地址  类型变量  内存_申请() 返回的地址
    //@别名 内存_释放(窗口句柄,内存地址)
    //@返回 1成功  0失败
    int VirtualFreeEx(int hwnd, int addr);

    //@备注 修改指定的窗口所在进程的地址的读写属性,修改为可读可写可执行.
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 修改地址  整数类型变量  需要修改的地址
    //@参数 修改长度  整数类型变量  需要修改的地址大小
    //@参数 修改方式  整数类型变量  0-可读可写可执行,此时指定保护值参数无效  1-修改为指定保护值的读写属性
    //@参数 指定保护值  整数类型变量  指定的读写属性
    //@别名 内存_修改保护(窗口句柄,修改地址,修改长度,修改方式,指定保护值)
    //@返回 0失败  成功返回修改之前的读写保护值
    int VirtualProtectEx(int hwnd, int addr, int size, int type, int old_protect);

    //@备注 对指定地址写入二进制数据
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 描述地址  文本类型变量  用字符串来描述地址，类似于CE的地址描述 例 "4DA678"  "<360SE.exe>+DA678"  "[<360SE.exe>+DA678]+3A"
    //@参数 字节码  文本类型变量  以16进制表示的字符串 以字符串形式描述，比如"12 34 56 78 90 ab cd"
    //@别名 内存_写字节码Ex(窗口句柄,描述地址,字节码)
    //@返回 1成功  0失败
    int WriteData(int hwnd, const wchar_t* addr, const wchar_t* data);

    //@备注 对指定地址写入二进制数据
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 内存地址  整数类型变量
    //@参数 字节码  文本类型变量  以16进制表示的字符串 以字符串形式描述，比如"12 34 56 78 90 ab cd"
    //@别名 内存_写字节码(窗口句柄,内存地址,字节码)
    //@返回 1成功  0失败
    int WriteDataAddr(int hwnd, int addr, const wchar_t* data);

    //@备注 对指定地址写入双精度浮点数
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 描述地址  文本类型变量  用字符串来描述地址，类似于CE的地址描述 例 "4DA678"  "<360SE.exe>+DA678"  "[<360SE.exe>+DA678]+3A"
    //@参数 值  双浮点类型变量
    //@别名 内存_写双浮点Ex(窗口句柄,描述地址,值)
    //@返回 1成功  0失败
    int WriteDouble(int hwnd, const wchar_t* addr, double v);

    //@备注 对指定地址写入双精度浮点数
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 内存地址  整数类型变量
    //@参数 值  双浮点类型变量
    //@别名 内存_写双浮点(窗口句柄,内存地址,值)
    //@返回 1成功  0失败
    int WriteDoubleAddr(int hwnd, int addr, double v);

    //@备注 对指定地址写入单精度浮点数
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 描述地址  文本类型变量  用字符串来描述地址，类似于CE的地址描述 例 "4DA678"  "<360SE.exe>+DA678"  "[<360SE.exe>+DA678]+3A"
    //@参数 值  单浮点类型变量
    //@别名 内存_写单浮点Ex(窗口句柄,描述地址,值)
    //@返回 1成功  0失败
    int WriteFloat(int hwnd, const wchar_t* addr, float v);

    //@备注 对指定地址写入单精度浮点数
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 内存地址  整数类型变量
    //@参数 值  单浮点类型变量
    //@别名 内存_写单浮点(窗口句柄,内存地址,值)
    //@返回 1成功  0失败
    int WriteFloatAddr(int hwnd, int addr, float v);

    //@备注 对指定地址写入整数数值,类型可以是8位,16位或者32位
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 描述地址  文本类型变量  用字符串来描述地址，类似于CE的地址描述 例 "4DA678"  "<360SE.exe>+DA678"  "[<360SE.exe>+DA678]+3A"
    //@参数 整数类型  整数类型变量  0-32位(4字节,一般都选这个)  1-16位(2字节)  2-8位(1字节)
    //@参数 值  整数类型变量
    //@别名 内存_写整数Ex(窗口句柄,描述地址,整数类型,值)
    //@返回 1成功  0失败
    int WriteInt(int hwnd, const wchar_t* addr, int type, int v);

    //@备注 对指定地址写入整数数值,类型可以是8位,16位或者32位
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 内存地址  整数类型变量
    //@参数 整数类型  整数类型变量  0-32位(4字节,一般都选这个)  1-16位(2字节)  2-8位(1字节)
    //@参数 值  整数类型变量
    //@别名 内存_写整数(窗口句柄,内存地址,整数类型,值)
    //@返回 1成功  0失败
    int WriteIntAddr(int hwnd, int addr, int type, int v);

    //@备注 对指定地址写入字符串,可以是Ascii字符串或者是Unicode字符串
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 描述地址  文本类型变量  用字符串来描述地址，类似于CE的地址描述 例 "4DA678"  "<360SE.exe>+DA678"  "[<360SE.exe>+DA678]+3A"
    //@参数 写入类型  整数类型变量  0-将字符串以Ascii编码写入  1-将字符串以Unicode编码写入
    //@参数 字符串  文本类型变量
    //@别名 内存_写文本Ex(窗口句柄,描述地址,写入类型,字符串)
    //@返回 1成功  0失败
    int WriteString(int hwnd, const wchar_t* addr, int type, const wchar_t* v);

    //@备注 对指定地址写入字符串,可以是Ascii字符串或者是Unicode字符串
    //@参数 窗口句柄  整数类型变量  默认是窗口句柄  如果要指定为进程ID,需要调用  内存_设置为进程ID调用()
    //@参数 内存地址  整数类型变量
    //@参数 写入类型  整数类型变量  0-将字符串以Ascii编码写入  1-将字符串以Unicode编码写入
    //@参数 字符串  文本类型变量
    //@别名 内存_写文本(窗口句柄,内存地址,写入类型,字符串)
    //@返回 1成功  0失败
    int WriteStringAddr(int hwnd, int addr, int type, const wchar_t* v);

    //@备注 添加指定的MASM汇编指令
    int AsmAdd(const wchar_t* asm_ins);

    //@备注 执行用AsmAdd加到缓冲中的指令.
    int AsmCall(int hwnd, int mode);

    //@备注 清除汇编指令缓冲区用AsmAdd添加到缓冲的指令全部清除
    int AsmClear();

    //@备注 把汇编缓冲区的指令转换为机器码并用16进制字符串的形式输出
    CXText AsmCode(int base_addr);

    //@备注 把指定的机器码转换为汇编语言输出
    CXText Assemble(const wchar_t* asm_code, int base_addr, int is_upper);

    //@备注 根据指定的位图创建一个自定义形状的窗口
    int CreateFoobarCustom(int hwnd, int x, int y, const wchar_t* pic_name, const wchar_t* trans_color, double sim);

    //@备注 创建一个椭圆窗口
    int CreateFoobarEllipse(int hwnd, int x, int y, int w, int h);

    //@备注 创建一个矩形窗口
    int CreateFoobarRect(int hwnd, int x, int y, int w, int h);

    //@备注 创建一个圆角矩形窗口
    int CreateFoobarRoundRect(int hwnd, int x, int y, int w, int h, int rw, int rh);

    //@备注 清除指定的Foobar滚动文本区
    int FoobarClearText(int hwnd);

    //@备注 关闭一个Foobar,注意,必须调用此函数来关闭窗口,用SetWindowState也可以关闭,但会造成内存泄漏.
    int FoobarClose(int hwnd);

    //@备注 在指定的Foobar窗口内部画线条.
    int FoobarDrawLine(int hwnd, int x1, int y1, int x2, int y2, const wchar_t* color, int style, int width);

    //@备注 在指定的Foobar窗口绘制图像
    int FoobarDrawPic(int hwnd, int x, int y, const wchar_t* pic_name, const wchar_t* trans_color);

    //@备注 在指定的Foobar窗口绘制文字
    int FoobarDrawText(int hwnd, int x, int y, int w, int h, const wchar_t* text, const wchar_t* color, int align);

    //@备注 在指定的Foobar窗口内部填充矩形
    int FoobarFillRect(int hwnd, int x1, int y1, int x2, int y2, const wchar_t* color);

    //@备注 锁定指定的Foobar窗口,不能通过鼠标来移动
    int FoobarLock(int hwnd);

    //@备注 向指定的Foobar窗口区域内输出滚动文字
    int FoobarPrintText(int hwnd, const wchar_t* text, const wchar_t* color);

    //@备注 设置指定Foobar窗口的字体
    int FoobarSetFont(int hwnd, const wchar_t* font_name, int size, int flag);

    //@备注 设置保存指定的Foobar滚动文本区信息到文件.
    int FoobarSetSave(int hwnd, const wchar_t* file, int enable, const wchar_t* header);

    //@备注 设置指定Foobar窗口的是否透明
    int FoobarSetTrans(int hwnd, int is_trans, const wchar_t* color, double sim);

    //@备注 在指定的Foobar窗口绘制gif动画.
    int FoobarStartGif(int hwnd, int x, int y, const wchar_t* pic_name, int repeat_limit, int delay);

    //@备注 停止在指定foobar里显示的gif动画.
    int FoobarStopGif(int hwnd, int x, int y, const wchar_t* pic_name);

    //@备注 设置滚动文本区的文字行间距,默认是3
    int FoobarTextLineGap(int hwnd, int line_gap);

    //@备注 设置滚动文本区的文字输出方向,默认是0
    int FoobarTextPrintDir(int hwnd, int dir);

    //@备注 设置指定Foobar窗口的滚动文本框范围,默认的文本框范围是窗口区域
    int FoobarTextRect(int hwnd, int x, int y, int w, int h);

    //@备注 解锁指定的Foobar窗口,可以通过鼠标来移动
    int FoobarUnlock(int hwnd);

    //@备注 刷新指定的Foobar窗口
    int FoobarUpdate(int hwnd);

    //@备注 可以把上次FaqPost的发送取消,接着下一次FaqPost
    int FaqCancel();

    //@备注 截取指定范围内的动画或者图像,并返回此句柄.
    int FaqCapture(int x1, int y1, int x2, int y2, int quality, int delay, int time);

    //@备注 截取指定图片中的图像,并返回此句柄.
    int FaqCaptureFromFile(int x1, int y1, int x2, int y2, const wchar_t* file, int quality);

    //@备注 从给定的字符串(也可以算是文字类型的问题),获取此句柄.（此接口必须配合答题器v30以后的版本）
    int FaqCaptureString(const wchar_t* str);

    //@备注 获取由FaqPost发送后,由服务器返回的答案.
    CXText FaqFetch();

    //@备注 获取句柄所对应的数据包的大小,单位是字节
    int FaqGetSize(int handle);

    //@备注 用于判断当前对象是否有发送过答题(FaqPost)
    int FaqIsPosted();

    //@备注 发送指定的图像句柄到指定的服务器,并立即返回(异步操作).
    int FaqPost(const wchar_t* server, int handle, int request_type, int time_out);

    //@备注 发送指定的图像句柄到指定的服务器,并等待返回结果(同步等待).
    CXText FaqSend(const wchar_t* server, int handle, int request_type, int time_out);

    //@备注 需要先加载Ai模块. 在指定范围内检测对象.
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 相似度  单精度浮点数  超过这个值的对象才会被检测
    //@参数 重叠度  单精度浮点数  用于对多个检测框进行合并.  越大越不容易合并(很多框重叠). 越小越容易合并(可能会把正常的框也给合并). 所以这个值一般建议0.4-0.6之间. 可以在Yolo综合工具里进行测试.
    //@别名 AIYOLO_检测对象(x1,y1,x2,y2,相似度,重叠度)
    //@返回 所有检测到的对象.格式是"类名,相似度,x,y,w,h|....". 如果没检测到任何对象,返回空字符串.
    CXText AiYoloDetectObjects(int x1, int y1, int x2, int y2, float prob, float iou);

    //@备注 需要先加载Ai模块. 在指定范围内检测对象,把结果输出到BMP图像数据.用于二次开发.
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 相似度  单精度浮点数  超过这个值的对象才会被检测
    //@参数 重叠度  单精度浮点数  用于对多个检测框进行合并.  越大越不容易合并(很多框重叠). 越小越容易合并(可能会把正常的框也给合并). 所以这个值一般建议0.4-0.6之间. 可以在Yolo综合工具里进行测试.
    //@参数 数据地址  整数类型变量  传参  返回图片的数据指针
    //@参数 数据长度  整数类型变量  传参  返回图片的数据长度
    //@参数 模式 整数类型变量  0:表示绘制的文字信息里包含置信度  1:表示不包含
    //@别名 AIYOLO_检测对象_到图像数据(x1,y1,x2,y2,相似度,重叠度,数据地址,数据长度,模式)
    //@返回 1:成功  0:失败
    int AiYoloDetectObjectsToDataBmp(int x1, int y1, int x2, int y2, float prob, float iou, int& data, int& size, long mode);

    //@备注 需要先加载Ai模块. 在指定范围内检测对象,把结果输出到指定的BMP文件.
    //@参数 x1  整数类型变量  区域的左上X坐标
    //@参数 y1  整数类型变量  区域的左上Y坐标
    //@参数 x2  整数类型变量  区域的右下X坐标
    //@参数 y2  整数类型变量  区域的右下Y坐标
    //@参数 相似度  单精度浮点数  超过这个值的对象才会被检测
    //@参数 重叠度  单精度浮点数  用于对多个检测框进行合并.  越大越不容易合并(很多框重叠). 越小越容易合并(可能会把正常的框也给合并). 所以这个值一般建议0.4-0.6之间. 可以在Yolo综合工具里进行测试.
    //@参数 文件名  文本类型变量  图片名,比如"test.bmp"
    //@参数 模式 整数类型变量  0:表示绘制的文字信息里包含置信度  1:表示不包含
    //@别名 AIYOLO_检测对象_到图像文件(x1,y1,x2,y2,相似度,重叠度,文件名,模式)
    //@返回 1:成功  0:失败
    int AiYoloDetectObjectsToFile(long x1, long y1, long x2, long y2, float prob, float iou, const wchar_t* file_name, long mode);

    //@备注 需要先加载Ai模块. 卸载指定的模型
    //@参数 模型序号  已加载的模型序号
    //@别名 AIYOLO_卸载模型(模型序号)
    //@返回 1:成功  0:失败
    int AiYoloFreeModel(int index);

    //@备注 需要先加载Ai模块. 把通过 AIYOLO_检测对象 或者是 AIYOLO_对象排序 的结果,按照顺序把class信息连接输出.
    //@参数 对象信息  AIYOLO_检测对象() 或者是 AIYOLO_对象排序() 的返回值
    //@别名 AIYOLO_取对象结果文本(对象信息)
    //@返回 class信息连接后的信息.
    CXText AiYoloObjectsToString(const wchar_t* objects);

    //@备注 需要先加载Ai模块. 从文件加载指定的模型.
    //@参数 模型序号  最多支持20个. 从0开始
    //@参数 模型文件  模型文件名. 比如"xxxx.onnx"或者"xxxx.dmx"
    //@参数 模型密码  模型的密码. 仅对dmx格式有效.
    //@别名 AIYOLO_加载模型(模型序号,模型文件,模型密码)
    //@返回 1:成功  0:失败
    int AiYoloSetModel(int index, const wchar_t* file_name, const wchar_t* pwd);

    //@备注 需要先加载Ai模块. 从内存加载指定的模型. 仅支持dmx格式的内存
    //@参数 模型序号  最多支持20个. 从0开始
    //@参数 模型地址  dmx模型的内存地址
    //@参数 模型大小  dmx模型的大小
    //@参数 模型密码  dmx模型的密码
    //@别名 AIYOLO_加载模型_从内存(模型序号,模型地址,模型大小,模型密码)
    //@返回 1:成功  0:失败
    int AiYoloSetModelMemory(int index, int addr, int size, const wchar_t* pwd);

    //@备注 需要先加载Ai模块. 设置Yolo的版本
    //@参数 版本信息  需要在加载Ai模块后,第一时间调用. 目前可选的值只有"v5-7.0"
    //@别名 AIYOLO_设置版本(版本信息)
    //@返回 1:成功  0:失败
    int AiYoloSetVersion(const wchar_t* Ver);

    //@备注 需要先加载Ai模块. 把通过 AIYOLO_检测对象() 的结果进行排序. 排序按照从上到下,从左到右.
    //@参数 对象信息  AIYOLO_检测对象()的返回值
    //@参数 行高信息  排序时需要使用此行高. 用于确定两个检测框是否处于同一行. 如果两个框的Y坐标相差绝对值小于此行高,认为是同一行.
    //@别名 AIYOLO_对象排序(对象信息,行高信息)
    //@返回 所有检测到的对象.格式是"类名,置信度,x,y,w,h|....". 如果没检测到任何对象,返回空字符串.
    CXText AiYoloSortsObjects(const wchar_t* objects, long height);

    //@备注 需要先加载Ai模块. 切换当前使用的模型序号.用于 AIYOLO_检测对象 等系列接口
    //@参数 模型序号  模型的序号. 最多支持20个. 从0开始
    //@别名 AIYOLO_设置模型(模型序号)
    //@返回 1:成功  0:失败
    int AiYoloUseModel(int index);

    //@备注 加载Ai模块. Ai模块从后台下载
    //@参数 模块路径  ai模块的路径
    //@别名 AIYOLO_加载模块(模块路径)
    //@返回 1:表示成功  -1:打开文件失败  -2:内存初始化失败  -3:参数错误  -4:加载错误  -5:Ai模块初始化失败  -6:内存分配失败
    int LoadAi(const wchar_t* file_name);

    //@备注 从内存加载Ai模块. Ai模块从后台下载
    //@参数 模块地址  ai模块在内存中的地址
    //@参数 模块大小  ai模块在内存中的大小
    //@别名 AIYOLO_加载模块_从内存(模块地址,模块大小)
    //@返回 1:表示成功  -1:打开文件失败  -2:内存初始化失败  -3:参数错误  -4:加载错误  -5:Ai模块初始化失败  -6:内存分配失败
    int LoadAiMemory(int addr, int size);
};